57 lines
2.2 KiB
Docker
57 lines
2.2 KiB
Docker
# 后端构建脚本
|
|
FROM --platform=linux/amd64 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/eclipse-temurin:17-jre
|
|
|
|
ENV LANG=C.UTF-8
|
|
ENV LC_ALL=C.UTF-8
|
|
ENV TZ=Asia/Shanghai
|
|
ENV JAVA_OPTS=""
|
|
ENV EASYFLOW_JAR_PATH=/app/artifacts/easyflow.jar
|
|
ENV EASYFLOW_CONFIG_PATH=file:/app/application.yml
|
|
ENV EASYFLOW_LOG_FILE=/app/logs/app.log
|
|
ENV EASYFLOW_JAR_RESTART_GRACE_SECONDS=30
|
|
ENV NPM_CONFIG_REGISTRY=https://registry.npmmirror.com
|
|
ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
|
|
ENV PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn
|
|
|
|
WORKDIR /app
|
|
|
|
RUN useradd --system --create-home easyflow && \
|
|
apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg && \
|
|
mkdir -p /etc/apt/keyrings && \
|
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key -o /tmp/nodesource.gpg.key && \
|
|
gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg /tmp/nodesource.gpg.key && \
|
|
chmod 644 /etc/apt/keyrings/nodesource.gpg && \
|
|
printf "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_24.x nodistro main\n" > /etc/apt/sources.list.d/nodesource.list && \
|
|
rm -f /tmp/nodesource.gpg.key && \
|
|
apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
inotify-tools \
|
|
nodejs \
|
|
python3 \
|
|
python3-pip \
|
|
python3-venv \
|
|
tini && \
|
|
ln -sf /usr/bin/python3 /usr/local/bin/python && \
|
|
ln -sf /usr/bin/pip3 /usr/local/bin/pip && \
|
|
npm config set registry "${NPM_CONFIG_REGISTRY}" && \
|
|
printf "registry=%s\n" "${NPM_CONFIG_REGISTRY}" > /etc/npmrc && \
|
|
npm install -g pnpm@10.17.1 && \
|
|
pnpm config set registry "${NPM_CONFIG_REGISTRY}" && \
|
|
mkdir -p /etc/pip && \
|
|
printf "[global]\nindex-url = %s\ntrusted-host = %s\n" "${PIP_INDEX_URL}" "${PIP_TRUSTED_HOST}" > /etc/pip.conf && \
|
|
rm -rf /var/lib/apt/lists/* && \
|
|
mkdir -p /app/logs /app/artifacts /app/data && \
|
|
chown -R easyflow:easyflow /app
|
|
|
|
COPY docker-entrypoint.sh /usr/local/bin/easyflow-entrypoint.sh
|
|
RUN chmod 755 /usr/local/bin/easyflow-entrypoint.sh
|
|
|
|
VOLUME ["/app/logs", "/app/data"]
|
|
EXPOSE 8111
|
|
|
|
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/easyflow-entrypoint.sh"]
|