jimeng-free-api/Dockerfile

42 lines
1.1 KiB
Docker

FROM node:20.19-slim
# 安装系统依赖和工具
RUN apt-get update && apt-get install -y \
curl \
wget \
procps \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy application dependency manifests to the container image.
# A wildcard is used to ensure both package.json AND package-lock.json are copied.
# Copying this first prevents re-running npm install on every code change.
COPY package*.json ./
# Install dependencies
RUN yarn install --registry https://registry.npmmirror.com/ --ignore-engines
# Copy the rest of the application files to the container image.
COPY . .
# Build the application
RUN yarn run build
RUN echo "Debug: Contents of /app after build:"
RUN ls -la /app
RUN echo "Debug: Contents of /app/dist after build:"
RUN ls -la /app/dist || echo "Debug: /app/dist directory not found or ls failed"
# 创建非 root 用户
RUN groupadd -r nodeuser && useradd -r -g nodeuser nodeuser
RUN chown -R nodeuser:nodeuser /app
USER nodeuser
EXPOSE 3302
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -f http://localhost:3302/ping || exit 1
CMD ["npm", "run", "start"]