forked from discohook/site
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.collaborative
143 lines (110 loc) · 4.41 KB
/
Dockerfile.collaborative
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
FROM debian:11-slim as builder
ENV CFG_PATH ./collaborative/convergence/omnibus
RUN apt-get update && \
apt-get install -y tar curl jq wget && \
rm -rf /var/lib/apt/lists/*
ENV TMPDIR=/tmp/convergence
RUN mkdir $TMPDIR
###
### Convergence Client Download
###
## npm view @convergence/convergence to get SHASUM
ENV CLIENT_VERSION 1.0.0-rc.12
ENV CLIENT_NPM_PACKAGE @convergence/convergence
ENV CLIENT_SHASUM b71a5bfa00cd6dfa012cb586d118203b98358674
ENV CLIENT_TMP_DIR=$TMPDIR/client
RUN mkdir $CLIENT_TMP_DIR
RUN wget -q -O - https://registry.npmjs.org/$CLIENT_NPM_PACKAGE/ | jq ".versions[\"$CLIENT_VERSION\"].dist" > $CLIENT_TMP_DIR/version.json
RUN TARBALL=`cat $CLIENT_TMP_DIR/version.json | jq .tarball -r` && \
wget -q $TARBALL -O $CLIENT_TMP_DIR/convergence.tgz && \
echo "$CLIENT_SHASUM *$CLIENT_TMP_DIR/convergence.tgz" | sha1sum -c - && \
tar -zxvf $CLIENT_TMP_DIR/convergence.tgz -C $CLIENT_TMP_DIR
###
### Convergence Admin Console Download
###
## npm view @convergence/admin-console to get SHASUM
ENV CONSOLE_VERSION 1.0.0-rc.12
ENV CONSOLE_NPM_PACKAGE @convergence/admin-console
ENV CONSOLE_SHASUM b1e0271dfb4f5467be75df8d15b10d1de98e18c8
ENV CONSOLE_TMP_DIR=$TMPDIR/console
RUN mkdir $CONSOLE_TMP_DIR
RUN wget -q -O - https://registry.npmjs.org/$CONSOLE_NPM_PACKAGE/ | jq ".versions[\"$CONSOLE_VERSION\"].dist" > $CONSOLE_TMP_DIR/version.json
RUN TARBALL=`cat $CONSOLE_TMP_DIR/version.json | jq .tarball -r` && \
wget -q $TARBALL -O $CONSOLE_TMP_DIR/admin-console.tgz && \
echo "$CONSOLE_SHASUM *$CONSOLE_TMP_DIR/admin-console.tgz" | sha1sum -c - && \
tar -zxvf $CONSOLE_TMP_DIR/admin-console.tgz -C $CONSOLE_TMP_DIR
##
## Convergence Server Download
##
ENV SERVER_VERSION 1.0.0-rc.12
ENV SERVER_MD5 0c3829216bee4fc49b9eca2d1823110d
ENV SERVER_SHA1 985c2c762be51bfe3e015614f4c01a741df6c968
ENV SERVER_TMP_DIR=$TMPDIR/server
RUN mkdir $SERVER_TMP_DIR
COPY $CFG_PATH/download-convergence-server.sh $SERVER_TMP_DIR
RUN chmod a+x $SERVER_TMP_DIR/download-convergence-server.sh && \
$SERVER_TMP_DIR/download-convergence-server.sh && \
mkdir $SERVER_TMP_DIR/convergence-server && \
tar -zxvf $SERVER_TMP_DIR/convergence-server.tgz -C $SERVER_TMP_DIR/convergence-server --strip-components=1
##
## Orient DB Download
##
ENV ORIENTDB_VERSION 3.0.37
ENV ORIENTDB_DOWNLOAD_MD5 da01fdb3fae076fca4879b563b4b8f53
ENV ORIENTDB_DOWNLOAD_SHA1 0f7ac76daf691b4723bde9cfbe637c3ef36b3657
ENV ORIENTDB_DOWNLOAD_URL https://repo1.maven.org/maven2/com/orientechnologies/orientdb-community/$ORIENTDB_VERSION/orientdb-community-$ORIENTDB_VERSION.tar.gz
ENV ORIENTDB_TMP_DIR=$TMPDIR/orientdb
RUN mkdir $ORIENTDB_TMP_DIR
# download distribution tar, untar and delete databases
RUN wget -q $ORIENTDB_DOWNLOAD_URL && \
echo "$ORIENTDB_DOWNLOAD_MD5 *orientdb-community-$ORIENTDB_VERSION.tar.gz" | md5sum -c - && \
echo "$ORIENTDB_DOWNLOAD_SHA1 *orientdb-community-$ORIENTDB_VERSION.tar.gz" | sha1sum -c - && \
tar -xvzf orientdb-community-$ORIENTDB_VERSION.tar.gz -C $ORIENTDB_TMP_DIR --strip-components=1 && \
rm orientdb-community-$ORIENTDB_VERSION.tar.gz && \
rm -rf $ORIENTDB_TMP_DIR/databases/*
FROM adoptopenjdk/openjdk11:debian-slim
ENV CFG_PATH ./collaborative/convergence/omnibus
RUN apt-get update && \
apt-get install -y supervisor nginx bash gettext curl jq && \
rm -rf /var/lib/apt/lists/*
##
## Orient DB
##
COPY --from=builder /tmp/convergence/orientdb /orientdb
COPY $CFG_PATH/orientdb-server-config.xml /orientdb/config/
VOLUME /orientdb/database
##
## Convergence Admin console
##
COPY --from=builder /tmp/convergence/console/package/build /www/console
COPY $CFG_PATH/convergence-admin-console.config.js /www/console/convergence-admin-console.config.js
##
## Convergence Client
##
COPY --from=builder /tmp/convergence/client/package /www/client
##
## Convergence Server
##
COPY --from=builder /tmp/convergence/server/convergence-server /convergence-server
COPY $CFG_PATH/log4j2.xml /convergence-server/conf/log4j2.xml
COPY $CFG_PATH/convergence-server.conf /convergence-server/conf/convergence-server.conf
##
## Proxy
##
COPY $CFG_PATH/nginx.conf /etc/nginx/nginx.conf.template
RUN mkdir -p /run/nginx && \
mkdir -p /var/tmp/nginx/client_body
##
## Supervisor
##
COPY $CFG_PATH/supservisord.conf /etc/supervisord.conf
COPY $CFG_PATH/public.key /public.key
COPY $CFG_PATH/add-key.sh /add-key.sh
RUN chmod a+x /add-key.sh && mkdir /supservisord
##
## Boot Script
##
COPY $CFG_PATH/boot.sh /boot.sh
RUN chmod a+x /boot.sh
EXPOSE 80
CMD ["./boot.sh"]