Skip to content

Commit 1746399

Browse files
authored
Merge pull request #89 from MaRDI4NFDI/refactor_composer
rm var/www/html and refactor composer
2 parents 947659f + 45582c8 commit 1746399

File tree

1 file changed

+35
-50
lines changed

1 file changed

+35
-50
lines changed

Dockerfile

Lines changed: 35 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
ARG MEDIAWIKI_VERSION=lts
55
ARG WMF_BRANCH=wmf/1.41.0-wmf.15
66
ARG REL_BRANCH=REL1_40
7-
ARG WMDE_BRANCH=wmde.6
87

98
################
109
# Fetcher #
@@ -19,7 +18,6 @@ RUN apt-get update && \
1918
# make global settings known in this build stage
2019
ARG WMF_BRANCH
2120
ARG REL_BRANCH
22-
ARG WMDE_BRANCH
2321

2422
# clone extensions from github, using specific branch
2523

@@ -30,17 +28,16 @@ bash clone-extension.sh Babel ${WMF_BRANCH};\
3028
bash clone-extension.sh CirrusSearch ${WMF_BRANCH};\
3129
bash clone-extension.sh cldr ${WMF_BRANCH};\
3230
bash clone-extension.sh ConfirmEdit ${WMF_BRANCH};\
33-
bash clone-extension.sh DataTransfer master;\
31+
bash clone-extension.sh DataTransfer ${REL_BRANCH};\
3432
bash clone-extension.sh Elastica ${WMF_BRANCH};\
3533
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};\
3936
bash clone-extension.sh Flow ${WMF_BRANCH};\
4037
bash clone-extension.sh JsonConfig ${WMF_BRANCH};\
4138
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};\
4441
bash clone-extension.sh Nuke ${WMF_BRANCH};\
4542
bash clone-extension.sh OAuth ${WMF_BRANCH};\
4643
bash clone-extension.sh Popups ${WMF_BRANCH};\
@@ -50,16 +47,16 @@ bash clone-extension.sh UniversalLanguageSelector ${WMF_BRANCH};\
5047
bash clone-extension.sh VisualEditor ${WMF_BRANCH};\
5148
bash clone-extension.sh Wikibase ${WMF_BRANCH};\
5249
bash clone-extension.sh WikibaseCirrusSearch ${WMF_BRANCH};\
53-
bash clone-extension.sh WikibaseManifest ${WMDE_BRANCH};\
50+
bash clone-extension.sh WikibaseManifest ${REL_BRANCH};\
5451
bash clone-extension.sh WikibaseLexeme ${WMF_BRANCH};\
5552
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};\
5855
# 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};\
6360
bash clone-extension.sh LinkedWiki ${REL_BRANCH}
6461

6562
# clone extensions not officially distributed by mediawiki
@@ -91,6 +88,8 @@ rm -rf Vector/.git
9188
################
9289
FROM mediawiki:${MEDIAWIKI_VERSION} as collector
9390

91+
RUN rm -rf /var/www/html/*
92+
9493
COPY --from=fetcher /mediawiki /var/www/html
9594
# collect bundle extensions
9695
COPY --from=fetcher /Elastica /var/www/html/extensions/Elastica
@@ -148,43 +147,29 @@ COPY --from=fetcher /Vector /var/www/html/skins/Vector
148147
################
149148
# Composer #
150149
################
151-
FROM composer as composer
150+
FROM mediawiki:${MEDIAWIKI_VERSION} as build
152151
COPY --from=collector /var/www/html /var/www/html
153152
WORKDIR /var/www/html/
154153
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+
163165
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 \
178166
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
179167
&& docker-php-ext-install gd \
180168
&& 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
188173

189174

190175
#######################################
@@ -195,7 +180,6 @@ FROM mediawiki:${MEDIAWIKI_VERSION}
195180

196181
# PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
197182
# NAME="Debian GNU/Linux"
198-
# Add libapache2-mod-shib for shib
199183
RUN apt-get update && \
200184
DEBIAN_FRONTEND=noninteractive\
201185
apt-get install --yes --no-install-recommends \
@@ -207,7 +191,8 @@ RUN a2enmod rewrite
207191
RUN install -d /var/log/mediawiki -o www-data
208192
RUN docker-php-ext-install calendar bz2 pdo pgsql pdo_pgsql
209193

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
211196
COPY wait-for-it.sh /wait-for-it.sh
212197
RUN chmod +x /wait-for-it.sh
213198
COPY entrypoint.sh /entrypoint.sh
@@ -244,13 +229,13 @@ RUN chown www-data:www-data /var/www/html/images
244229
# Enable mod shibboleth and generate self signed keys
245230
# RUN shib-keygen && a2enconf shib_mod
246231

247-
#########################
248-
# Set up vecollabpad #
249-
#########################
232+
# Set up vecollabpad
250233
RUN cd /var/www/html/extensions/VisualEditor/lib/ve && npm install && grunt build
251234
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+
252236
# Install node modules for LinkedWiki
253237
RUN cd /var/www/html/extensions/LinkedWiki && npm install
238+
254239
##
255240
ENTRYPOINT ["/bin/bash"]
256241
CMD ["/entrypoint.sh"]

0 commit comments

Comments
 (0)