]>
Commit | Line | Data |
---|---|---|
72698686 | 1 | FROM node:10-buster-slim |
e8395f02 | 2 | |
29706739 | 3 | # Allow to pass extra options to the npm run build |
9c85ee2e AM |
4 | # eg: --light --light-fr to not build all client languages |
5 | # (speed up build time if i18n is not required) | |
6 | ARG NPM_RUN_BUILD_OPTS | |
7 | ||
e8395f02 | 8 | # Install dependencies |
7593d9f8 | 9 | RUN apt update \ |
8d3fe90c | 10 | && apt install -y --no-install-recommends openssl ffmpeg python ca-certificates gnupg gosu \ |
244e955e FA |
11 | && gosu nobody true \ |
12 | && rm /var/lib/apt/lists/* -fR | |
e8395f02 | 13 | |
c7574e86 | 14 | # Add peertube user |
399d20ea FP |
15 | RUN groupadd -r peertube \ |
16 | && useradd -r -g peertube -m peertube | |
17 | ||
c7574e86 | 18 | # Install PeerTube |
72698686 | 19 | COPY --chown=peertube:peertube . /app |
c7574e86 | 20 | WORKDIR /app |
4aeb67a5 C |
21 | |
22 | USER peertube | |
c7574e86 A |
23 | |
24 | RUN yarn install --pure-lockfile \ | |
9c85ee2e | 25 | && npm run build -- $NPM_RUN_BUILD_OPTS \ |
d1e59223 | 26 | && rm -r ./node_modules ./client/node_modules \ |
904a463c | 27 | && yarn install --pure-lockfile --production \ |
e5095ca5 | 28 | && yarn cache clean |
e8395f02 | 29 | |
fd5e57bb C |
30 | USER root |
31 | ||
32 | RUN mkdir /data /config | |
33 | RUN chown -R peertube:peertube /data /config | |
34 | ||
e8395f02 | 35 | ENV NODE_ENV production |
fd5e57bb | 36 | ENV NODE_CONFIG_DIR /config |
e8395f02 | 37 | |
399d20ea | 38 | VOLUME /data |
fd5e57bb | 39 | VOLUME /config |
399d20ea | 40 | |
4aeb67a5 C |
41 | COPY ./support/docker/production/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh |
42 | ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | |
399d20ea | 43 | |
e8395f02 | 44 | # Run the application |
29706739 | 45 | CMD ["npm", "start"] |
e8395f02 | 46 | EXPOSE 9000 |