]>
Commit | Line | Data |
---|---|---|
e8395f02 | 1 | FROM node:8-stretch |
2 | ||
7593d9f8 | 3 | # Allow to pass extra options to the yarn 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 | ||
399d20ea FP |
8 | RUN set -ex; \ |
9 | if ! command -v gpg > /dev/null; then \ | |
7593d9f8 J |
10 | apt update; \ |
11 | apt install -y --no-install-recommends \ | |
399d20ea FP |
12 | gnupg \ |
13 | dirmngr \ | |
14 | ; \ | |
15 | rm -rf /var/lib/apt/lists/*; \ | |
16 | fi | |
17 | ||
e8395f02 | 18 | # Install dependencies |
7593d9f8 J |
19 | RUN apt update \ |
20 | && apt -y install ffmpeg \ | |
c7574e86 | 21 | && rm /var/lib/apt/lists/* -fR |
e8395f02 | 22 | |
c7574e86 | 23 | # Add peertube user |
399d20ea FP |
24 | RUN groupadd -r peertube \ |
25 | && useradd -r -g peertube -m peertube | |
26 | ||
27 | # grab gosu for easy step-down from root | |
73a48728 | 28 | RUN set -eux; \ |
7593d9f8 J |
29 | apt update; \ |
30 | apt install -y gosu; \ | |
73a48728 C |
31 | rm -rf /var/lib/apt/lists/*; \ |
32 | gosu nobody true | |
e8395f02 | 33 | |
c7574e86 | 34 | # Install PeerTube |
c7574e86 | 35 | WORKDIR /app |
c36d5a6b C |
36 | COPY . ./ |
37 | RUN chown -R peertube:peertube /app | |
4aeb67a5 C |
38 | |
39 | USER peertube | |
c7574e86 A |
40 | |
41 | RUN yarn install --pure-lockfile \ | |
9c85ee2e | 42 | && npm run build -- $NPM_RUN_BUILD_OPTS \ |
d1e59223 | 43 | && rm -r ./node_modules ./client/node_modules \ |
904a463c | 44 | && yarn install --pure-lockfile --production \ |
e5095ca5 | 45 | && yarn cache clean |
e8395f02 | 46 | |
fd5e57bb C |
47 | USER root |
48 | ||
49 | RUN mkdir /data /config | |
50 | RUN chown -R peertube:peertube /data /config | |
51 | ||
e8395f02 | 52 | ENV NODE_ENV production |
fd5e57bb | 53 | ENV NODE_CONFIG_DIR /config |
e8395f02 | 54 | |
399d20ea | 55 | VOLUME /data |
fd5e57bb | 56 | VOLUME /config |
399d20ea | 57 | |
4aeb67a5 C |
58 | COPY ./support/docker/production/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh |
59 | ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | |
399d20ea | 60 | |
e8395f02 | 61 | # Run the application |
7593d9f8 | 62 | CMD ["yarn", "start"] |
e8395f02 | 63 | EXPOSE 9000 |