X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdocker%2Fproduction%2FDockerfile.stretch;h=32c5266c5237e67fb65d1f288a096b5893efcf86;hb=72698686828b7b80a336d83fdbb1707e3b7a61fe;hp=911d064f6c26c04ae6d07a1439fadf9270ad255b;hpb=904a463c7792837f0a468a522a28448323e48593;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/docker/production/Dockerfile.stretch b/support/docker/production/Dockerfile.stretch index 911d064f6..32c5266c5 100644 --- a/support/docker/production/Dockerfile.stretch +++ b/support/docker/production/Dockerfile.stretch @@ -1,61 +1,28 @@ -FROM node:8-stretch +FROM node:10-buster-slim -RUN set -ex; \ - if ! command -v gpg > /dev/null; then \ - apt-get update; \ - apt-get install -y --no-install-recommends \ - gnupg \ - dirmngr \ - ; \ - rm -rf /var/lib/apt/lists/*; \ -fi +# Allow to pass extra options to the npm run build +# eg: --light --light-fr to not build all client languages +# (speed up build time if i18n is not required) +ARG NPM_RUN_BUILD_OPTS # Install dependencies -RUN apt-get update \ - && apt-get -y install ffmpeg \ - && rm /var/lib/apt/lists/* -fR +RUN apt update \ + && apt install -y --no-install-recommends ffmpeg gnupg gosu \ + && gosu nobody true \ + && rm /var/lib/apt/lists/* -fR # Add peertube user RUN groupadd -r peertube \ && useradd -r -g peertube -m peertube -# grab gosu for easy step-down from root -# https://github.com/tianon/gosu/releases -ENV GOSU_VERSION 1.10 -RUN set -ex; \ - \ - fetchDeps='ca-certificates wget'; \ - apt-get update; \ - apt-get install -y --no-install-recommends $fetchDeps; \ - rm -rf /var/lib/apt/lists/*; \ - \ - dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; \ - wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; \ - wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; \ - export GNUPGHOME="$(mktemp -d)"; \ - for server in $(shuf -e ha.pool.sks-keyservers.net \ - hkp://p80.pool.sks-keyservers.net:80 \ - keyserver.ubuntu.com \ - hkp://keyserver.ubuntu.com:80 \ - pgp.mit.edu) ; do \ - gpg --keyserver "$server" --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && break || : ; \ - done; \ - gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; \ - rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \ - chmod +x /usr/local/bin/gosu; \ - gosu nobody true; \ - \ - apt-get purge -y --auto-remove wget - # Install PeerTube +COPY --chown=peertube:peertube . /app WORKDIR /app -COPY . ./ -RUN chown -R peertube:peertube /app USER peertube RUN yarn install --pure-lockfile \ - && npm run build \ + && npm run build -- $NPM_RUN_BUILD_OPTS \ && rm -r ./node_modules ./client/node_modules \ && yarn install --pure-lockfile --production \ && yarn cache clean