Created
August 5, 2020 16:34
-
-
Save maxerbox/861048e0d6b56ac13f8f95cad4e668a5 to your computer and use it in GitHub Desktop.
Sage theme production dockerfile (no plugins) wordpress
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM wordpress:apache | |
# composer install | |
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer | |
RUN apt-get -y update \ | |
&& apt-get -yq install \ | |
gnupg2 \ | |
curl \ | |
&& apt-get autoclean \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* | |
RUN groupadd --gid 1000 node \ | |
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node | |
ENV NODE_VERSION 12.18.3 | |
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ | |
&& case "${dpkgArch##*-}" in \ | |
amd64) ARCH='x64';; \ | |
ppc64el) ARCH='ppc64le';; \ | |
s390x) ARCH='s390x';; \ | |
arm64) ARCH='arm64';; \ | |
armhf) ARCH='armv7l';; \ | |
i386) ARCH='x86';; \ | |
*) echo "unsupported architecture"; exit 1 ;; \ | |
esac \ | |
# gpg keys listed at https://github.com/nodejs/node#release-keys | |
&& set -ex \ | |
&& for key in \ | |
4ED778F539E3634C779C87C6D7062848A1AB005C \ | |
94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ | |
71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ | |
8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ | |
C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ | |
C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C \ | |
DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ | |
A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ | |
B9E2F5981AA6E0CD28160D9FF13993A75599653C \ | |
; do \ | |
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ | |
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ | |
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ | |
done \ | |
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ | |
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ | |
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ | |
&& grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ | |
&& tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ | |
&& rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ | |
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \ | |
# smoke tests | |
&& node --version \ | |
&& npm --version | |
ENV YARN_VERSION 1.22.4 | |
RUN set -ex \ | |
&& for key in \ | |
6A010C5166006599AA17F08146C2130DFD2497F5 \ | |
; do \ | |
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ | |
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ | |
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ | |
done \ | |
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ | |
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ | |
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ | |
&& mkdir -p /opt \ | |
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ | |
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ | |
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ | |
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ | |
# smoke test | |
&& yarn --version | |
ADD . /var/www/html/wp-content/themes/emmanuelle-latest/ | |
WORKDIR /var/www/html/wp-content/themes/emmanuelle-latest/ | |
RUN composer install | |
RUN yarn; \ | |
yarn build:production | |
# clean up | |
RUN apt-get clean | |
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* | |
WORKDIR /var/www/html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment