4
4
ARG MEDIAWIKI_VERSION=lts
5
5
ARG WMF_BRANCH=wmf/1.41.0-wmf.15
6
6
ARG REL_BRANCH=REL1_40
7
- ARG WMDE_BRANCH=wmde.6
8
7
9
8
# ###############
10
9
# Fetcher #
@@ -19,7 +18,6 @@ RUN apt-get update && \
19
18
# make global settings known in this build stage
20
19
ARG WMF_BRANCH
21
20
ARG REL_BRANCH
22
- ARG WMDE_BRANCH
23
21
24
22
# clone extensions from github, using specific branch
25
23
@@ -30,17 +28,16 @@ bash clone-extension.sh Babel ${WMF_BRANCH};\
30
28
bash clone-extension.sh CirrusSearch ${WMF_BRANCH};\
31
29
bash clone-extension.sh cldr ${WMF_BRANCH};\
32
30
bash clone-extension.sh ConfirmEdit ${WMF_BRANCH};\
33
- bash clone-extension.sh DataTransfer master ;\
31
+ bash clone-extension.sh DataTransfer ${REL_BRANCH} ;\
34
32
bash clone-extension.sh Elastica ${WMF_BRANCH};\
35
33
bash clone-extension.sh EntitySchema ${WMF_BRANCH};\
36
- # master version has composer problem?
37
- bash clone-extension.sh ExternalData 3.1;\
38
- bash clone-extension.sh UrlGetParameters master;\
34
+ bash clone-extension.sh ExternalData ${REL_BRANCH};\
35
+ bash clone-extension.sh UrlGetParameters ${REL_BRANCH};\
39
36
bash clone-extension.sh Flow ${WMF_BRANCH};\
40
37
bash clone-extension.sh JsonConfig ${WMF_BRANCH};\
41
38
bash clone-extension.sh Lockdown ${REL_BRANCH};\
42
- bash clone-extension.sh Math master ;\
43
- bash clone-extension.sh MathSearch master ;\
39
+ bash clone-extension.sh Math ${WMF_BRANCH} ;\
40
+ bash clone-extension.sh MathSearch ${REL_BRANCH} ;\
44
41
bash clone-extension.sh Nuke ${WMF_BRANCH};\
45
42
bash clone-extension.sh OAuth ${WMF_BRANCH};\
46
43
bash clone-extension.sh Popups ${WMF_BRANCH};\
@@ -50,16 +47,16 @@ bash clone-extension.sh UniversalLanguageSelector ${WMF_BRANCH};\
50
47
bash clone-extension.sh VisualEditor ${WMF_BRANCH};\
51
48
bash clone-extension.sh Wikibase ${WMF_BRANCH};\
52
49
bash clone-extension.sh WikibaseCirrusSearch ${WMF_BRANCH};\
53
- bash clone-extension.sh WikibaseManifest ${WMDE_BRANCH };\
50
+ bash clone-extension.sh WikibaseManifest ${REL_BRANCH };\
54
51
bash clone-extension.sh WikibaseLexeme ${WMF_BRANCH};\
55
52
bash clone-extension.sh YouTube ${REL_BRANCH};\
56
- bash clone-extension.sh PluggableAuth ${REL_BRANCH}; \
57
- bash clone-extension.sh OpenIDConnect ${REL_BRANCH}; \
53
+ bash clone-extension.sh PluggableAuth ${REL_BRANCH};\
54
+ bash clone-extension.sh OpenIDConnect ${REL_BRANCH};\
58
55
# bash clone-extension.sh Shibboleth ${REL_BRANCH}; \
59
- bash clone-extension.sh Graph ${WMF_BRANCH}; \
60
- bash clone-extension.sh ArticlePlaceholder ${WMF_BRANCH}; \
61
- bash clone-extension.sh Echo ${WMF_BRANCH}; \
62
- bash clone-extension.sh Thanks ${WMF_BRANCH}; \
56
+ bash clone-extension.sh Graph ${WMF_BRANCH};\
57
+ bash clone-extension.sh ArticlePlaceholder ${WMF_BRANCH};\
58
+ bash clone-extension.sh Echo ${WMF_BRANCH};\
59
+ bash clone-extension.sh Thanks ${WMF_BRANCH};\
63
60
bash clone-extension.sh LinkedWiki ${REL_BRANCH}
64
61
65
62
# clone extensions not officially distributed by mediawiki
@@ -91,6 +88,8 @@ rm -rf Vector/.git
91
88
# ###############
92
89
FROM mediawiki:${MEDIAWIKI_VERSION} as collector
93
90
91
+ RUN rm -rf /var/www/html/*
92
+
94
93
COPY --from=fetcher /mediawiki /var/www/html
95
94
# collect bundle extensions
96
95
COPY --from=fetcher /Elastica /var/www/html/extensions/Elastica
@@ -148,43 +147,29 @@ COPY --from=fetcher /Vector /var/www/html/skins/Vector
148
147
# ###############
149
148
# Composer #
150
149
# ###############
151
- FROM composer as composer
150
+ FROM mediawiki:${MEDIAWIKI_VERSION} as build
152
151
COPY --from=collector /var/www/html /var/www/html
153
152
WORKDIR /var/www/html/
154
153
COPY composer.local.json /var/www/html/composer.local.json
155
- # remove ext-calendar requirement, causing composer install to fail
156
- # composer only checks if requirements are met, but does not install or
157
- # actually depend on ext-calendar.
158
- # ext-calendar is installed in the final stage via docker-php-ext-install
159
- RUN sed -i '/ext-calendar/d' composer.json
160
- RUN rm -f /var/www/html/composer.lock
161
-
162
- # installing the php intl extension on linux alpine (req. for running composer install)
154
+
155
+ # Temporary fix to allow ExternalData installation with composer < 2
156
+ RUN sed -i '/"composer\/ installers": "~2\. 1"/d' /var/www/html/extensions/ExternalData/composer.json
157
+
158
+ RUN apt-get update && \
159
+ DEBIAN_FRONTEND=noninteractive \
160
+ apt-get install --yes --no-install-recommends \
161
+ zlib1g-dev libjpeg-dev libpng-dev libfreetype6-dev libzip-dev zip && \
162
+ apt-get clean && \
163
+ rm -rf /var/lib/apt/lists/*
164
+
163
165
RUN set -xe \
164
- && apk add --update icu \
165
- && apk add --no-cache --virtual .php-deps make \
166
- && apk add --no-cache --virtual .build-deps \
167
- $PHPIZE_DEPS \
168
- zlib-dev \
169
- icu-dev \
170
- g++ \
171
- freetype-dev \
172
- libpng-dev \
173
- jpeg-dev \
174
- libjpeg-turbo-dev \
175
- && docker-php-ext-configure intl \
176
- && docker-php-ext-install intl \
177
- && docker-php-ext-enable intl \
178
166
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
179
167
&& docker-php-ext-install gd \
180
168
&& docker-php-ext-enable gd \
181
- && { find /usr/local/lib -type f -print0 | xargs -0r strip --strip-all -p 2>/dev/null || true; } \
182
- && apk del .build-deps \
183
- && rm -rf /tmp/* /usr/local/lib/php/doc/* /var/cache/apk/*
184
- # rather than ignoring plattform devs one should use the mediawiki as a base image an copy composer via
185
- # COPY --from=composer:1 /usr/bin/composer /usr/bin/composer
186
- # See section PHP version & extensions on https://hub.docker.com/_/composer
187
- RUN composer install --no-dev --ignore-platform-reqs
169
+ && docker-php-ext-install zip
170
+
171
+ COPY --from=composer /usr/bin/composer /usr/bin/composer
172
+ RUN composer install --no-dev
188
173
189
174
190
175
# ######################################
@@ -195,7 +180,6 @@ FROM mediawiki:${MEDIAWIKI_VERSION}
195
180
196
181
# PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
197
182
# NAME="Debian GNU/Linux"
198
- # Add libapache2-mod-shib for shib
199
183
RUN apt-get update && \
200
184
DEBIAN_FRONTEND=noninteractive\
201
185
apt-get install --yes --no-install-recommends \
@@ -207,7 +191,8 @@ RUN a2enmod rewrite
207
191
RUN install -d /var/log/mediawiki -o www-data
208
192
RUN docker-php-ext-install calendar bz2 pdo pgsql pdo_pgsql
209
193
210
- COPY --from=composer /var/www/html /var/www/html
194
+ RUN rm -rf /var/www/html/*
195
+ COPY --from=build /var/www/html /var/www/html
211
196
COPY wait-for-it.sh /wait-for-it.sh
212
197
RUN chmod +x /wait-for-it.sh
213
198
COPY entrypoint.sh /entrypoint.sh
@@ -244,13 +229,13 @@ RUN chown www-data:www-data /var/www/html/images
244
229
# Enable mod shibboleth and generate self signed keys
245
230
# RUN shib-keygen && a2enconf shib_mod
246
231
247
- # ########################
248
- # Set up vecollabpad #
249
- # ########################
232
+ # Set up vecollabpad
250
233
RUN cd /var/www/html/extensions/VisualEditor/lib/ve && npm install && grunt build
251
234
RUN cd /var/www/html/extensions/VisualEditor/lib/ve/rebaser && npm install && cp config.dev.yaml config.yaml && sed -i 's/localhost/mongodb/g' config.yaml
235
+
252
236
# Install node modules for LinkedWiki
253
237
RUN cd /var/www/html/extensions/LinkedWiki && npm install
238
+
254
239
# #
255
240
ENTRYPOINT ["/bin/bash" ]
256
241
CMD ["/entrypoint.sh" ]
0 commit comments