Newer
Older
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
# NOTE: image from quay.io (e.g. quay.io/fedora/fedora:36) is incompatible with Docker
# (broken DNS resolution). If you want to take images from quay.io, use Podman
FROM alpine
ARG NODEJS_VERSION='16.9.0'
ENV CNTROOT=/opt/ctnroot
RUN dnf update -y \
&& dnf install -y curl jq \
&& dnf clean -y all
WORKDIR ${CNTROOT}
RUN ARCHIVE_FILE_NAME="node-v${NODEJS_VERSION}-linux-x64.tar.gz" \
&& curl --silent --remote-name --location \
"https://nodejs.org/dist/v${NODEJS_VERSION}/${ARCHIVE_FILE_NAME}" \
&& tar -vxz \
-C "${CNTROOT}" \
--strip 1 \
-f "./${ARCHIVE_FILE_NAME}" >/dev/null 2>&1 \
&& rm -rf ${ARCHIVE_FILE_NAME}
ENV \
HOME=/opt/ctnroot/src \
PATH=/opt/ctnroot/src/bin:/opt/ctnroot/bin:${PATH}
WORKDIR ${HOME}
COPY ./src/* ./
RUN npm install --production
RUN groupadd --gid 2002 ctnrgroup \
&& useradd --uid 1001 --system --gid 2002 --home-dir ${HOME} \
--shell /sbin/nologin --comment "ctnr user" \
ctnruser \
&& chown -R 1001:2002 ${CNTROOT}
USER 1001
ENTRYPOINT [ "node" ]
CMD [ "./main.js", \
"--port", "8023" \
]
EXPOSE 8023