Skip to content

Commit

Permalink
Use wikimedia composer image (wmde#73)
Browse files Browse the repository at this point in the history
  • Loading branch information
toban authored Feb 18, 2021
1 parent 0a04728 commit d321d9b
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 24 deletions.
14 changes: 6 additions & 8 deletions Docker/build/QuickStatements/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
ARG COMPOSER_IMAGE_NAME
ARG COMPOSER_IMAGE_VERSION
FROM ubuntu:xenial as fetcher

RUN apt-get update && \
apt-get install --yes --no-install-recommends git=1:2.* ca-certificates=201* && \
apt-get clean && rm -rf /var/lib/apt/lists/*

COPY artifacts/quickstatements.tar.gz artifacts/quickstatements.tar.gz
RUN tar xzf artifacts/quickstatements.tar.gz

FROM composer:1 as composer

COPY --from=fetcher /quickstatements /quickstatements
FROM ${COMPOSER_IMAGE_NAME}:${COMPOSER_IMAGE_VERSION} as composer
COPY --from=fetcher --chown=nobody:nogroup /quickstatements/composer.json /quickstatements/composer.json

WORKDIR /quickstatements
RUN composer install --no-dev
Expand All @@ -21,7 +18,8 @@ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes --no-install-recommends gettext-base=0.19.* jq=1.5* && \
rm -rf /var/lib/apt/lists/*

COPY --from=composer /quickstatements /var/www/html/quickstatements
COPY --from=fetcher /quickstatements /var/www/html/quickstatements
COPY --from=composer --chown=root:root /quickstatements/vendor /var/www/html/quickstatements/vendor
COPY --from=fetcher /magnustools /var/www/html/magnustools

COPY entrypoint.sh /entrypoint.sh
Expand Down
9 changes: 5 additions & 4 deletions Docker/build/Wikibase/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ARG COMPOSER_IMAGE_NAME
ARG COMPOSER_IMAGE_VERSION
ARG MEDIAWIKI_IMAGE_NAME
FROM ubuntu:xenial as unpacker

Expand All @@ -15,11 +17,10 @@ COPY --from=unpacker Wikibase /var/www/html/extensions/Wikibase

RUN rm /var/www/html/extensions/Wikibase/vendor -rf

FROM composer:1.10.19 as composer
COPY --from=collector /var/www/html /var/www/html
FROM ${COMPOSER_IMAGE_NAME}:${COMPOSER_IMAGE_VERSION} as composer
COPY --from=collector --chown=nobody:nogroup /var/www/html /var/www/html
WORKDIR /var/www/html/
COPY composer.local.json /var/www/html/composer.local.json
RUN apk add icu-dev && docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-configure intl && docker-php-ext-install intl
RUN composer install --verbose -n --no-dev

FROM ${MEDIAWIKI_IMAGE_NAME}:latest
Expand All @@ -34,7 +35,7 @@ RUN install -d /var/log/mediawiki -o www-data

RUN docker-php-ext-install calendar bz2

COPY --from=composer /var/www/html /var/www/html
COPY --from=composer --chown=root:root /var/www/html /var/www/html
COPY artifacts/wait-for-it.sh /wait-for-it.sh
COPY entrypoint.sh /entrypoint.sh
COPY LocalSettings.php.template /LocalSettings.php.template
Expand Down
7 changes: 4 additions & 3 deletions Docker/build/WikibaseBundle/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
ARG COMPOSER_IMAGE_NAME
ARG COMPOSER_IMAGE_VERSION
ARG WIKIBASE_IMAGE_NAME
FROM ${WIKIBASE_IMAGE_NAME}:latest as base

FROM composer:1.10.19 as composer
FROM ${COMPOSER_IMAGE_NAME}:${COMPOSER_IMAGE_VERSION} as composer

COPY --from=base /var/www/html /var/www/html
COPY --from=base --chown=nobody:nogroup /var/www/html /var/www/html
COPY artifacts/extensions /var/www/html/extensions

WORKDIR /var/www/html/
RUN apk add icu-dev && docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-configure intl && docker-php-ext-install intl
RUN rm -rf /var/www/html/vendor
RUN rm -rf /var/www/html/composer.lock
RUN composer install --no-dev -vv -n
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM docker:latest
RUN apk add --no-cache git make bash composer
RUN apk add --no-cache git make bash

WORKDIR "/app/"
ENV XDG_CACHE_HOME=/app/cache
Expand Down
1 change: 1 addition & 0 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ docker build . -t builder && \
-v "$(pwd)/artifacts":/app/artifacts \
-v "$(pwd)/git_cache":/app/git_cache \
-v "$(pwd)/cache":/app/cache \
-v "/tmp":/tmp \
-v /var/run/docker.sock:/var/run/docker.sock \
builder:latest make "$TARGET"
6 changes: 5 additions & 1 deletion build/build_quickstatements_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,9 @@ set -ex
mkdir -p Docker/build/QuickStatements/artifacts
cp "$TARBALL_PATH" Docker/build/QuickStatements/artifacts/

docker build --pull Docker/build/QuickStatements/ -t "$1"
docker build \
--build-arg COMPOSER_IMAGE_NAME="$COMPOSER_IMAGE_NAME" \
--build-arg COMPOSER_IMAGE_VERSION="$COMPOSER_IMAGE_VERSION" \
--no-cache Docker/build/QuickStatements/ -t "$1"

docker save "$1" | gzip -"$GZIP_COMPRESSION_RATE"f > artifacts/"$1".docker.tar.gz
17 changes: 12 additions & 5 deletions build/build_wikibase.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
set -e
set -ex

ROOT="$(pwd)"

Expand All @@ -16,10 +16,17 @@ bash "$ROOT"/build/write_git_metadata.sh "$WIKIBASE_PATH" "$ROOT"/artifacts/buil
# remove git things from release package
rm "$WIKIBASE_PATH"/.git* -rfv

# install composer dependencies for tarball
cd "$WIKIBASE_PATH"
composer install --no-dev --ignore-platform-reqs
cd -
COMPOSER_FILE="$TEMP_GIT_DIR/Wikibase/composer.json"
COMPOSER_VENDOR="$TEMP_GIT_DIR/Wikibase/vendor/"

mkdir "$COMPOSER_VENDOR"
chmod 777 "$COMPOSER_VENDOR" -R

docker run \
--volume "$COMPOSER_FILE":/tmp/composer.json \
--volume "$COMPOSER_VENDOR":/tmp/vendor/ \
"$COMPOSER_IMAGE_NAME:$COMPOSER_IMAGE_VERSION" \
install --no-dev --ignore-platform-reqs -vv -d "/tmp/"

GZIP=-9 tar -C "$TEMP_GIT_DIR" -zcf "$TEMP_TAR_DIR"/Wikibase.tar.gz Wikibase

Expand Down
6 changes: 5 additions & 1 deletion build/build_wikibase_bundle_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ bash build/build_extension.sh Elastica "${GERRIT_EXTENSION_BRANCH_NAME}" "$BUILT
bash build/build_extension.sh CirrusSearch "${GERRIT_EXTENSION_BRANCH_NAME}" "$BUILT_EXTENSIONS_PATH"
bash build/build_extension.sh WikibaseCirrusSearch "${GERRIT_EXTENSION_BRANCH_NAME}" "$BUILT_EXTENSIONS_PATH"

docker build --no-cache --build-arg WIKIBASE_IMAGE_NAME="$WIKIBASE_IMAGE_NAME" Docker/build/WikibaseBundle/ -t "$WIKIBASE_BUNDLE_IMAGE_NAME"
docker build --no-cache \
--build-arg WIKIBASE_IMAGE_NAME="$WIKIBASE_IMAGE_NAME" \
--build-arg COMPOSER_IMAGE_NAME="$COMPOSER_IMAGE_NAME" \
--build-arg COMPOSER_IMAGE_VERSION="$COMPOSER_IMAGE_VERSION" \
Docker/build/WikibaseBundle/ -t "$WIKIBASE_BUNDLE_IMAGE_NAME"

docker save "$WIKIBASE_BUNDLE_IMAGE_NAME" | gzip -"$GZIP_COMPRESSION_RATE"f > artifacts/"$WIKIBASE_BUNDLE_IMAGE_NAME".docker.tar.gz
6 changes: 5 additions & 1 deletion build/build_wikibase_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ fi

cp Docker/build/wait-for-it.sh Docker/build/Wikibase/artifacts/

docker build --build-arg MEDIAWIKI_IMAGE_NAME="$MEDIAWIKI_IMAGE_NAME" Docker/build/Wikibase/ -t "$1"
docker build \
--build-arg MEDIAWIKI_IMAGE_NAME="$MEDIAWIKI_IMAGE_NAME" \
--build-arg COMPOSER_IMAGE_NAME="$COMPOSER_IMAGE_NAME" \
--build-arg COMPOSER_IMAGE_VERSION="$COMPOSER_IMAGE_VERSION" \
Docker/build/Wikibase/ -t "$1"

docker save "$1" | gzip -"$GZIP_COMPRESSION_RATE"f > artifacts/"$1".docker.tar.gz
3 changes: 3 additions & 0 deletions variables.env
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ ELASTICSEARCH_IMAGE_NAME=elasticsearch
WIKIBASE_BUNDLE_IMAGE_NAME=wikibase-bundle
QUICKSTATEMENTS_IMAGE_NAME=quickstatements

COMPOSER_IMAGE_NAME=docker-registry.wikimedia.org/releng/composer-php72
COMPOSER_IMAGE_VERSION=latest

# Releasing tarballs
RELEASE_DIR=/srv/org/wikimedia/releases/wikibase
RELEASE_SSH_IDENTITY=id_rsa
Expand Down

0 comments on commit d321d9b

Please sign in to comment.