X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdocker%2Fproduction%2FDockerfile.stretch;h=720f266d376c0c0fadace17b01db84deeaaeed49;hb=244e955e4e15975ac1dec6d852fb966b854ebe10;hp=b1905b3a8ae84e1df0fb44e3420fe673a70f1530;hpb=c7574e8661d62982516ac21c661964b49adbc850;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/docker/production/Dockerfile.stretch b/support/docker/production/Dockerfile.stretch index b1905b3a8..720f266d3 100644 --- a/support/docker/production/Dockerfile.stretch +++ b/support/docker/production/Dockerfile.stretch @@ -1,31 +1,47 @@ -FROM node:8-stretch +FROM node:10-stretch-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 # 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 -g 991 peertube \ - && useradd -u 991 -g peertube -m peertube - -# Download the latest version -RUN git clone https://github.com/Chocobozzz/PeerTube /app \ - && chown -R peertube:peertube /app +RUN groupadd -r peertube \ + && useradd -r -g peertube -m peertube # 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 -- $NPM_RUN_BUILD_OPTS \ + && 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 + +VOLUME /data +VOLUME /config + +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"] -VOLUME ["/data"] EXPOSE 9000