]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - support/docker/production/Dockerfile.bullseye
Upgrade client dependencies
[github/Chocobozzz/PeerTube.git] / support / docker / production / Dockerfile.bullseye
index 7b2650538022468120b6452dd3d2dcab943684a5..267d7f4eb4c3e240d041592ca5a93b11254a0b3d 100644 (file)
@@ -1,13 +1,8 @@
-FROM node:12-bullseye-slim
-
-# 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
+FROM node:16-bullseye-slim
 
 # Install dependencies
 RUN apt update \
- && apt install -y --no-install-recommends openssl ffmpeg python ca-certificates gnupg gosu build-essential curl \
+ && apt install -y --no-install-recommends openssl ffmpeg python3 ca-certificates gnupg gosu build-essential curl git \
  && gosu nobody true \
  && rm /var/lib/apt/lists/* -fR
 
@@ -21,10 +16,12 @@ WORKDIR /app
 
 USER peertube
 
-RUN yarn install --pure-lockfile \
-    && npm run build -- $NPM_RUN_BUILD_OPTS \
-    && rm -r ./node_modules ./client/node_modules \
-    && yarn install --pure-lockfile --production \
+# Install manually client dependencies to apply our network timeout option
+RUN cd client && yarn install --pure-lockfile --network-timeout 1200000 && cd ../ \
+    && yarn install --pure-lockfile --network-timeout 1200000 \
+    && npm run build \
+    && rm -r ./node_modules ./client/node_modules ./client/.angular \
+    && yarn install --pure-lockfile --production --network-timeout 1200000 --network-concurrency 20 \
     && yarn cache clean
 
 USER root
@@ -40,10 +37,10 @@ VOLUME /data
 VOLUME /config
 
 COPY ./support/docker/production/entrypoint.sh /usr/local/bin/entrypoint.sh
-ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
+ENTRYPOINT [ "/usr/local/bin/entrypoint.sh" ]
 
 # Expose API and RTMP
 EXPOSE 9000 1935
 
 # Run the application
-CMD ["npm", "start"]
+CMD [ "node", "dist/server" ]