-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
244 lines (230 loc) · 10 KB
/
Copy pathDockerfile
File metadata and controls
244 lines (230 loc) · 10 KB
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
FROM keyax/ubuntu_core:22.04
LABEL maintainer="yones.lebady AT gmail.com" \
keyax.os="ubuntu core" \
keyax.os.ver="22.04 jammy LTS" \
keyax.vendor="Keyax" \
keyax.app="Nodejs 18.16.0 LTS" \
keyax.app.ver="22.04 LTS"
# gpg keys listed at https://github.com/nodejs/node#release-team
RUN ["/bin/bash", "-c", "set -ex; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 56730D5401028683275BD23C23EFEFE93C4CFFFE; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1; \
gpg2 --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A"]
# gpg keys listed at https://github.com/nodejs/node#release-team
#RUN set -ex \
# && for key in \
# 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
# FD3A5288F042B6850C66B31F09FE44734EB7990E \
# 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \
# DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
# C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
# B9AE9905FFD7803F25714661B63B535A4C206CA9 \
# 56730D5401028683275BD23C23EFEFE93C4CFFFE \
# 77984A986EBC2AA786BC0F66B01FBB92821C587A \
# ; do \
# gpg --keyserver pgp.mit.edu --recv-keys "$key" || \
# gpg --keyserver keyserver.pgp.com --recv-keys "$key" || \
# gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key" ; \
# done
#RUN ["/bin/bash", "-c", "set -ex; \
# for key in \
# 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \
# B9AE9905FFD7803F25714661B63B535A4C206CA9 \ ha.pool unreach
# 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ unreachable
### 0034A06D9D9B0064CE8ADF6BF1747F4AD2306D93 \
# C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \
# DD8F2338BAE7501E3DD5AC78C273792F7D83545D \
### 9554F04D7259F04124DE6B476D5A82AC7E37093B \
# FD3A5288F042B6850C66B31F09FE44734EB7990E \ hkp://p80 unreachable
# 56730D5401028683275BD23C23EFEFE93C4CFFFE \ hkp://ha.pool unreach
# ; do gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $key ; done"]
# ; do gpg --keyserver pool.sks-keyservers.net --recv-keys $key ; done"]
# ; do gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys $key ; done"]
# ; do gpg --keyserver ha.pool.sks-keyservers.net --recv-keys $key ; done"]
# apt-key adv --recv-key --keyserver pool.sks-keyservers.net $key || \
# apt-key adv --recv-key --keyserver pgp.mit.edu $key || \
# apt-key adv --recv-key --keyserver keyserver.pgp.com $key
ENV NPM_CONFIG_LOGLEVEL info
ENV NODE_VERSION 18.16.0
# LTS
# ENV NODE_VERSION 8.11.1
RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg2 --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 \
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
## RUN su node \
## && cd /home/node \
## && npm init --yes \
# for building Couchbase Nodejs driver from source : make gcc ...
## && apt-get update && apt-get install --assume-yes --no-install-recommends build-essential \
## && npm install -g couchbase \
# npm install --save couchbase-promises && \
# npm install --save ottoman && \
# npm install --save couchbase --no-bin-links && \
# npm install "git+https://github.com/couchbase/couchnode.git#master" && \
# npm install prebuild && \
## && apt-get remove build-essential --assume-yes \
# remove dependencies
# apt-get autoremove build-essential --assume-yes && \
# remove dependent packages
# apt-get purge build-essential && \
# remove packages installed by other packages and no longer needed purge configs
## && apt-get autoremove --purge --assume-yes \
# remove the aptitude cache in /var/cache/apt/archives frees 0MB
## && apt-get clean \
# delete 27MB all the apt list files since they're big and get stale quickly
## && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# this forces "apt-get update" in dependent images, which is also good
# RUN groupadd -r nodejs && useradd -r -g nodejs nodejs --create-home nodejs
RUN set -ex \
&& echo root:mypass | chpasswd \
&& groupadd --gid 11000 kyxgrp \
&& useradd --uid 11000 --gid kyxgrp --shell /bin/bash --create-home node
## && useradd --uid 11000 --gid kyxgrp --shell /bin/bash -M yones
# && usermod -a -G kyxgrp mongo \
# && usermod -a -G kyxgrp yones \
# && getent group mongo \
# && id -Gn mongo \
# && mkdir -m u=rwx,g=rw,o=r -p -v /home/node \
# && chown -R node:kyxgrp /home/node \
# && ls -shal
# && su mongo
# USER node
WORKDIR /home/node
COPY package.json /home/node/
RUN su nodejs; npm init --yes \
&& npm install -g nodemon \
&& npm install -g --no-optional pm2 \
# && npm install -g strongloop \
# && npm install -g phonegap@latest \
&& npm install --save builtin-modules \
## && npm install --save http \
## && npm install --save https \
## && npm install --save assert \
## && npm install --save fs \
&& npm install --save fs-extra \
&& npm install --save mz \
&& npm install --save rxjs \
# && npm install --save jquery \
# && npm install --save express \
# && npm install --save formidable \
# && npm install --save multer \
# && npm install --save express-session \
# && npm install --save passport \
# && npm install --save express-jwt \
&& npm install --save bluebird \
&& npm install --save co \
&& npm install --save node-fetch \
&& npm install --save axios \
&& npm install --save xhr2 \
# && npm install --save koa2-cors \
&& npm install --save koa \
&& npm install --save koa-send \
&& npm install --save koa-respond \
&& npm install --save koa-static \
&& npm install --save koa-mount \
&& npm install --save koa-route \
&& npm install --save koa-trie-router \
&& npm install --save koa-router \
&& npm install --save koa-combine-routers \
&& npm install --save koa-rest-router \
&& npm install --save koa-ejs \
&& npm install --save koa-bodyparser \
# && npm install --save body-parser \
&& npm install --save koa-json-body \
&& npm install --save json-parse-async \
&& npm install --save jsonlint \
&& npm install --save json-schema-ref-parser \
&& npm install --save koa-body \
&& npm install --save koa-validate \
# && npm install --save koa-validation \
# && npm install --save koa-better-body \ ERR! code ENOGIT needs git ??
&& npm install --save koa-busboy \
## && npm install --save async-busboy \
&& npm install --save progress-stream \
&& npm install --save koa-formidable \
&& npm install --save koa-multer \
&& npm install --save qs \
&& npm install --save querystring \
&& npm install --save cookies \
&& npm install --save koa-cookie \
# && npm install --save cookie-parser \
&& npm install --save koa-logger \
&& npm install --save koa-connect-flash \
&& npm install --save koa-flash \
&& npm install --save koa-basic-auth \
# && npm install --save mongoose@4.10.8 \
&& npm install --save mongoose \
&& npm install --save koa-session-mongoose \
&& npm install --save koa-session \
&& npm install --save koa-session2 \
&& npm install --save koa-generic-session \
&& npm install --save koa-generic-session-mongo \
&& npm install --save mongodb \
&& npm install --save koa-session-store \
&& npm install --save koa-session-mongo \
&& npm install --save koa-if \
&& npm install --save koa-compose \
&& npm install --save koa-convert \
&& npm install --save koa-csrf \
&& npm install --save email-verification \
&& npm install --save bcrypt-nodejs \
&& npm install --save koa-passport \
&& npm install --save passport-local \
&& npm install --save passport-local-mongoose \
&& npm install --save passport-client-certificate \
&& npm install --save passport-jwt \
&& npm install --save passport-facebook \
&& npm install --save passport-twitter \
&& npm install --save passport-google-auth \
&& npm install --save koa-jwt \
&& npm install --save jsonwebtoken \
&& npm install --save jwt-simple \
# && npm install --save x509 \ ERR! x509@0.3.2 install: `node-gyp rebuild`
&& npm install --save ws \
&& npm install --save socket.io \
&& npm install --save socketio-auth \
&& npm install --save koa-socket-2 \
&& npm install --save koa-socket-passport \
&& npm install --save koa-socket.io \
&& npm install --save koa-socket-session \
# && npm install --save koa.io \
&& npm install --save socket.io-mongodb \
&& npm install --save mubsub \
&& npm install --save exiftool \
&& npm install --save d3 \
&& npm install --save leaflet \
&& npm install --save mysql \
&& npm install --save mysql2
#&& npm init --yes
### RUN mkdir /home/node/js && mkdir /home/node/statics
# empty directory not allowed in ADD throws error: no such file or directory
# ADD 1 layer,untar,url~; COPY 3 layers
# ADD www/js /home/node/js
# ADD www/img /home/node/img
# ADD www/css /home/node/css
# ADD www/fonts /home/node/fonts
# ADD www/data /home/node/data
# ADD www/index.js /home/node/
# RUN chmod +x /home/node/index.js
# VOLUME /home/node/index.js
### VOLUME /home/node/js
### VOLUME /home/node/statics
# Unexpected error with Success & Nobuild
#VOLUME /home/node/js /home/node/statics Unexpected error
#VOLUME ["/home/node/js/","/home/node/statics/"] Unexpected error
USER node
EXPOSE 8000 8100 8200 8443
# CMD [ "pm2-docker", "js/index.js"]
#CMD gosu 11000:11000 bash -c "nodemon -L --watch /home/node js/index.js"
CMD [ "nodemon", "-L", "--watch", "/home/node", "js/index.js"]
#CMD [ "gosu", "11000:11000", "bash", "-c", "nodemon", "-L", "--watch", "/home/node", "js/index.js"]
# CMD [ "gosu 11000:11000 bash -c 'nodemon -L --watch /home/node js/index.js'"]