Skip to content

fix(docker): Builds plugins #72

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,17 +1,55 @@
ARG aws_account_id
ARG aws_region
ARG ecr_repo_name

# This stage is used to install plugin dependencies using composer. We use a docker multi-stage build to ensure all
# these extra dependencies do not end up in the final layer.
FROM php:7.4 as compile

ARG wp2static_version
ARG wp2static_s3_addon_version

FROM ${aws_account_id}.dkr.ecr.${aws_region}.amazonaws.com/${ecr_repo_name}:base
WORKDIR /deps

# Install system dependencies
RUN apt-get update && \
apt-get install --no-install-recommends -y wget zip unzip && \
rm -fr /var/lib/apt/lists/*

# Install composer
RUN wget https://raw.githubusercontent.com/composer/getcomposer.org/main/web/installer -O - -q | php -- --quiet && \
mv /deps/composer.phar /usr/local/bin/composer

# Download wp2static source code, install composer dependencies and build production plugin bundle
RUN curl -Lf https://github.com/WP2Static/wp2static/archive/refs/tags/${wp2static_version}.zip -o /deps/serverless-wordpress-wp2static.zip && \
unzip /deps/serverless-wordpress-wp2static.zip && \
cd /deps/wp2static-${wp2static_version} && \
composer install && \
composer build serverless-wordpress-wp2static && \
mv $HOME/Downloads/serverless-wordpress-wp2static.zip /deps/serverless-wordpress-wp2static.zip

# Download wp2static-s3-addon source code, install composer dependencies and build production plugin bundle
RUN curl -Lf https://github.com/leonstafford/wp2static-addon-s3/archive/refs/tags/${wp2static_s3_addon_version}.zip -o /deps/serverless-wordpress-s3-addon.zip && \
unzip /deps/serverless-wordpress-s3-addon.zip && \
cd /deps/wp2static-addon-s3-${wp2static_s3_addon_version} && \
composer install && \
composer build serverless-wordpress-s3-addon && \
mv $HOME/Downloads/serverless-wordpress-s3-addon.zip /deps/serverless-wordpress-s3-addon.zip

# Start over with a fresh wordpress layer
ARG aws_account_id
ARG aws_region
ARG ecr_repo_name
FROM ${aws_account_id}.dkr.ecr.${aws_region}.amazonaws.com/${ecr_repo_name}:base as wordpress

COPY ["wp-cli.phar", "/tmp/"]
COPY docker-entrypoint.sh /usr/local/bin/
RUN apt-get update && apt-get install -y sudo jq awscli mariadb-client && chmod +x /usr/local/bin/docker-entrypoint.sh && chmod +x /tmp/wp-cli.phar && mv /tmp/wp-cli.phar /usr/local/bin/wp \
&& rm -rf /var/lib/apt/lists/*

RUN curl https://github.com/WP2Static/wp2static/archive/refs/tags/${wp2static_version}.zip -o /tmp/serverless-wordpress-wp2static.zip
RUN curl https://github.com/leonstafford/wp2static-addon-s3/archive/refs/tags/${wp2static_s3_addon_version}.zip -o /tmp/serverless-wordpress-s3-addon.zip
# Copy over built plugins for the compile layer
COPY --from=compile /deps/serverless-wordpress-wp2static.zip /tmp/serverless-wordpress-wp2static.zip
COPY --from=compile /deps/serverless-wordpress-s3-addon.zip /tmp/serverless-wordpress-s3-addon.zip

RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
COPY ["php.ini", "$PHP_INI_DIR/conf.d/"]