Skip to content

Commit e4ae587

Browse files
committed
wip
1 parent 9a85bb1 commit e4ae587

2 files changed

Lines changed: 61 additions & 3 deletions

File tree

Dockerfile

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ FROM ${ARG_IMAGE_FROM} AS nodeapp-base
99
WORKDIR /home/node/app
1010

1111
# -----------------------------------------------------------------------------
12-
# Stage 2: Nodeapp base
12+
# Stage 2: Nodeapp build
1313
# -----------------------------------------------------------------------------
1414
FROM nodeapp-base AS nodeapp-build
1515

@@ -23,7 +23,42 @@ RUN --mount=type=cache,target=/home/node/.npm,sharing=locked \
2323
npm prune --omit=dev
2424

2525
# -----------------------------------------------------------------------------
26-
# TARGET 1: Nodeapp image
26+
# TARGET 1: Nodeapp dev image
27+
# -----------------------------------------------------------------------------
28+
FROM nodeapp-base AS nodeapp-dev
29+
30+
ARG NODE_ENV=development
31+
ARG NODE_UID=1000
32+
ENV NODE_UID=$NODE_UID
33+
ENV NODE_ENV=$NODE_ENV
34+
ENV NPM_CONFIG_PREFIX=/home/node/app/.npm
35+
ENV NPM_CONFIG_CACHE=/home/node/app/.npm
36+
37+
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
38+
--mount=type=cache,target=/var/lib/apt,sharing=locked \
39+
set -ex && \
40+
apt-get update && \
41+
apt-get install --no-install-recommends -y \
42+
# Alphabetical order per best practice
43+
# (To make finding packages in lists easier and to help avoid duplicates)
44+
git \
45+
curl \
46+
make \
47+
tar \
48+
unzip \
49+
zip
50+
51+
RUN usermod -u $NODE_UID node && \
52+
groupmod -g $NODE_UID node && \
53+
usermod -d /home/node -m node && \
54+
chown -R $NODE_UID:$NODE_UID /home/node
55+
56+
USER $NODE_UID
57+
58+
CMD ["/bin/bash"]
59+
60+
# -----------------------------------------------------------------------------
61+
# TARGET 2: Nodeapp image
2762
# -----------------------------------------------------------------------------
2863
FROM nodeapp-base AS nodeapp
2964

@@ -40,6 +75,6 @@ EXPOSE $PORT
4075
CMD [ "node", "-r", "dotenv/config", "build" ]
4176

4277
# -----------------------------------------------------------------------------
43-
# TARGET 2: Final image
78+
# TARGET 3: Final image
4479
# -----------------------------------------------------------------------------
4580
FROM nodeapp AS final

docker-compose.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
services:
2+
webapp:
3+
image: ${NODEAPP_IMAGE:-optimusclean-hmi-webapp:dev}
4+
user: '${NODEAPP_UID:-1000}'
5+
working_dir: '${NODEAPP_WORKING_DIR:-/home/node/app}'
6+
network_mode: 'host'
7+
env_file:
8+
- path: '${NODEAPP_ENV_FILE:-.env}'
9+
required: false
10+
restart: '${NODEAPP_RESTART_POLICY:-unless-stopped}'
11+
build:
12+
context: .
13+
args:
14+
NODE_UID: '${NODEAPP_UID:-1000}'
15+
dockerfile: '${NODEAPP_DOCKERFILE:-Dockerfile}'
16+
target: '${OPTIMUSCLEAN_HMI_WEBSERVER_DOCKERFILE_TARGET:-webapp-dev}'
17+
environment:
18+
- PORT=${NODEAPP_PORT:-5173}
19+
- NODE_UID=${NODEAPP_UID:-1000}
20+
volumes:
21+
- './:${NODEAPP_WORKING_DIR:-/home/node/app}:rw,z'
22+
stdin_open: ${NODEAPP_STDIN_OPEN:-false}
23+
command: ${NODEAPP_COMMAND:-bash -c "npm i; npm run dev -- --host 0.0.0.0 --port ${NODEAPP_PORT:-5173}"}

0 commit comments

Comments
 (0)