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)"; \
- gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; \
+ 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 -r "$GNUPGHOME" /usr/local/bin/gosu.asc; \
+ rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; \
chmod +x /usr/local/bin/gosu; \
gosu nobody true; \
\
apt-get purge -y --auto-remove wget
-# Download the latest version
-RUN git clone https://github.com/Chocobozzz/PeerTube /app \
- && chown -R peertube:peertube /app
-
# Install PeerTube
-USER peertube
WORKDIR /app
+COPY . ./
+RUN chown -R peertube:peertube /app
+
+USER peertube
RUN yarn install --pure-lockfile \
- && npm run build
+ && npm run build \
+ && rm -r ./node_modules ./client/node_modules \
+ && yarn install --pure-lockfile --production \
+ && yarn cache clean
+
+USER root
+
+RUN mkdir /data /config
+RUN chown -R peertube:peertube /data /config
-# Configure PeerTube
-RUN cp /app/config/default.yaml /app/support/docker/production/config/default.yaml
ENV NODE_ENV production
-ENV NODE_CONFIG_DIR /app/support/docker/production/config
+ENV NODE_CONFIG_DIR /config
-USER root
-RUN mkdir /data && chown peertube:peertube /data
VOLUME /data
+VOLUME /config
-COPY docker-entrypoint.sh /usr/local/bin/
-ENTRYPOINT ["docker-entrypoint.sh"]
+COPY ./support/docker/production/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
+ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
# Run the application
CMD ["npm", "start"]