]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - support/docker/production/Dockerfile.stretch
Merge branch 'release/v1.3.0' into develop
[github/Chocobozzz/PeerTube.git] / support / docker / production / Dockerfile.stretch
index 6edd33546cefbcc53930805f06f39972000db57a..5025341f1dd7ca76836ebabcf79e77494e5a58d2 100644 (file)
@@ -1,5 +1,10 @@
 FROM node:8-stretch
 
+# 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
+
 RUN set -ex; \
     if ! command -v gpg > /dev/null; then \
       apt-get update; \
@@ -20,32 +25,11 @@ 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
+RUN set -eux; \
+       apt-get update; \
+       apt-get install -y gosu; \
+       rm -rf /var/lib/apt/lists/*; \
+       gosu nobody true
 
 # Install PeerTube
 WORKDIR /app
@@ -55,7 +39,10 @@ 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
 
 USER root