1- FROM docker.io/drycc/base:bullseye as build-app
1+ FROM docker.io/drycc/base:bullseye as build-app
22
3- ADD web /workspace
4- WORKDIR /workspace
3+ ADD web /web
4+ WORKDIR /web
55
66ENV NODE_VERSION="16.14.0"
77
@@ -12,27 +12,27 @@ RUN install-stack node $NODE_VERSION && . init-stack \
1212
1313FROM docker.io/drycc/base:bullseye
1414
15- RUN adduser --system \
16- --shell /bin/bash \
17- --disabled-password \
18- --home /workspace \
19- --group \
20- drycc
15+ ARG DRYCC_UID=1001
16+ ARG DRYCC_GID=1001
17+ ARG DRYCC_HOME_DIR=/workspace
18+
19+ RUN groupadd drycc --gid ${DRYCC_GID} \
20+ && useradd drycc -u ${DRYCC_UID} -g ${DRYCC_GID} -s /bin/bash -m -d ${DRYCC_HOME_DIR}
2121
2222ENV PYTHON_VERSION="3.10.2"
23- COPY requirements.txt /workspace /requirements.txt
23+ COPY requirements.txt ${DRYCC_HOME_DIR} /requirements.txt
2424
2525RUN buildDeps='gcc rustc cargo libffi-dev musl-dev libldap2-dev libsasl2-dev' ; \
2626 install-packages $buildDeps \
2727 && install-stack python $PYTHON_VERSION && . init-stack \
28- && python3 -m venv /workspace /.venv \
29- && source /workspace /.venv/bin/activate \
30- && pip3 install --disable-pip-version-check --no-cache-dir -r /workspace /requirements.txt \
31- && chown -R drycc:drycc /workspace \
28+ && python3 -m venv ${DRYCC_HOME_DIR} /.venv \
29+ && source ${DRYCC_HOME_DIR} /.venv/bin/activate \
30+ && pip3 install --disable-pip-version-check --no-cache-dir -r ${DRYCC_HOME_DIR} /requirements.txt \
31+ && chown -R drycc:drycc ${DRYCC_HOME_DIR} \
3232 # set env
33- && echo "source /workspace /.venv/bin/activate" >> /opt/drycc/python/profile.d/python.sh \
33+ && echo "source ${DRYCC_HOME_DIR} /.venv/bin/activate" >> /opt/drycc/python/profile.d/python.sh \
3434 # cleanup
35- && scanelp /workspace /.venv/lib > runtime.txt \
35+ && scanelp ${DRYCC_HOME_DIR} /.venv/lib > runtime.txt \
3636 && apt-get purge -y --auto-remove $buildDeps \
3737 && install-packages $(< runtime.txt) \
3838 && apt-get autoremove -y \
@@ -52,10 +52,11 @@ RUN buildDeps='gcc rustc cargo libffi-dev musl-dev libldap2-dev libsasl2-dev'; \
5252 /usr/lib/`echo $(uname -m)`-linux-gnu/gconv/EBC* \
5353 && mkdir -p /usr/share/man/man{1..8}
5454
55- COPY . /workspace
56- COPY --from=build-app /workspace/dist /workspace/web/dist
57-
5855USER drycc
59- WORKDIR /workspace
60- CMD ["/workspace/bin/boot" ]
56+
57+ COPY --chown=drycc:drycc . ${DRYCC_HOME_DIR}
58+ COPY --chown=drycc:drycc --from=build-app /web/dist ${DRYCC_HOME_DIR}/web/dist
59+
60+ WORKDIR ${DRYCC_HOME_DIR}
61+ CMD ["bin/boot" ]
6162EXPOSE 8000
0 commit comments