aboutsummaryrefslogtreecommitdiffstats
path: root/docker/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'docker/Dockerfile')
-rw-r--r--docker/Dockerfile97
1 files changed, 97 insertions, 0 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..2b165f5
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,97 @@
1FROM lsiobase/alpine:3.11
2
3# version labels
4ARG BUILD_DATE
5LABEL build_version="Ferdi-server-docker Build-date:- ${BUILD_DATE}"
6LABEL maintainer="xthursdayx"
7
8ARG FERDI_RELEASE
9ENV NODE_VERSION=10.16.3
10ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
11
12# install packages
13RUN \
14 echo "**** installing build packages ****" && \
15 apk add --no-cache \
16 libcap \
17 libstdc++ \
18 nano && \
19 apk add --no-cache --virtual .build-deps \
20 binutils-gold \
21 curl \
22 gnupg \
23 gcc \
24 g++ \
25 linux-headers \
26 make \
27 memcached \
28 python && \
29 echo "**** downloading keys ****" && \
30 # gpg keys listed at https://github.com/nodejs/node#release-keys
31 for key in \
32 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
33 FD3A5288F042B6850C66B31F09FE44734EB7990E \
34 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
35 DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
36 C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
37 B9AE9905FFD7803F25714661B63B535A4C206CA9 \
38 77984A986EBC2AA786BC0F66B01FBB92821C587A \
39 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \
40 4ED778F539E3634C779C87C6D7062848A1AB005C \
41 A48C2BEE680E841632CD4E44F07496B3EB3C1762 \
42 B9E2F5981AA6E0CD28160D9FF13993A75599653C \
43 ; do \
44 gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \
45 gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \
46 gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \
47 done && \
48 echo "**** installing node ****" && \
49 curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && \
50 curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && \
51 gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && \
52 grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && \
53 tar -xf "node-v$NODE_VERSION.tar.xz" && \
54 cd "node-v$NODE_VERSION" && \
55 ./configure --prefix=/usr && \
56 make -j$(getconf _NPROCESSORS_ONLN) V= && \
57 make install && \
58 apk del .build-deps && \
59 cd / && \
60 rm -Rf "node-v$NODE_VERSION" && \
61 rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt
62
63RUN \
64 apk add --no-cache --virtual .build-deps-ferdi \
65 curl \
66 gnupg \
67 tar && \
68 echo "**** installing npm ****" && \
69 npm config set unsafe-perm true && \
70 npm install -g npm@latest && \
71 find /usr/lib/node_modules/npm -name test -o -name .bin -type d | xargs rm -rf && \
72 echo "**** install ferdi server ****" && \
73 mkdir -p /ferdi && \
74 curl -o /ferdi/ferdi.tar.gz -L "https://github.com/getferdi/server/archive/master.tar.gz" && \
75 echo "**** cleanup ****" && \
76 apk del .build-deps-ferdi && \
77 rm -rf \
78 ${RM_DIRS} \
79 /SHASUMS256.txt \
80 /tmp/* \
81 /var/cache/apk/* \
82 /usr/share/man/* \
83 /usr/share/doc \
84 /root/.node-gyp \
85 /root/.config \
86 /usr/lib/node_modules/npm/man \
87 /usr/lib/node_modules/npm/doc \
88 /usr/lib/node_modules/npm/html \
89 /usr/lib/node_modules/npm/scripts
90
91COPY root/ /
92
93USER root
94
95# ports and volumes
96EXPOSE 80 443
97VOLUME /app/database /app/recipes /config