-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathDockerfile.dev
47 lines (34 loc) · 1.31 KB
/
Dockerfile.dev
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
################
# BUILDER NODE #
################
FROM node:20.8.1-alpine AS node-builder
WORKDIR /usr/src/app
# copy assets
COPY package.json package-lock.json webpack.config.cjs gulpfile.js ./
COPY assets assets
# build js and css deps
RUN npm install && npm run build
#########
# FINAL #
#########
FROM python:3.12
# Create non-root user to run Gens
RUN groupadd --gid 1000 worker \
&& useradd -g worker --uid 1000 --shell /user/sbin/nologin --create-home worker
# Copy project to worker dir
WORKDIR /home/worker
# Chown all the files to the app user
COPY --chown=worker:worker gens ./gens
COPY --chown=worker:worker utils ./utils
COPY --chown=worker:worker README.md LICENSE pyproject.toml ./
# copy compiled web assetes
COPY --chown=worker:worker --from=node-builder /usr/src/app/build/css/error.min.css gens/static/css/
COPY --chown=worker:worker --from=node-builder /usr/src/app/build/css/home.min.css /usr/src/app/build/css/landing.min.css /usr/src/app/build/css/about.min.css gens/blueprints/home/static/
COPY --chown=worker:worker --from=node-builder /usr/src/app/build/*/gens.min.* gens/blueprints/gens/static/
# Install dependencies
RUN pip install --no-cache-dir --upgrade pip \
&& pip install -e .
# Change the user to app
USER worker
ENV FLASK_APP=./gens
CMD flask run --reload --debug --host '0.0.0.0'