12345678910111213141516171819202122232425262728293031323334 |
- FROM k6:v1
- # 创建 k6 用户和用户组(避免与主机用户UID冲突,指定一个高UID)
- #RUN groupadd -g 1001 k6 && \
- # useradd -u 1001 -g k6 -s /bin/bash -m k6
- # 创建工作目录并设置权限
- WORKDIR /app
- RUN apk add --no-cache nodejs npm && chown -R k6:k6 /app && node -v && npm -v && ln -s /usr/bin/node /usr/local/bin/node && ln -s /usr/bin/npm /usr/local/bin/npm && apk add --no-cache font-noto-cjk && apk add --no-cache ttf-dejavu
- # 复制 package.json 并安装依赖(以 root 身份,因为可能需要安装系统依赖)
- COPY server/package*.json ./server/
- COPY client/package*.json ./client/
- RUN cd client && npm install && \
- cd ../server && npm install
- # 构建前端(仍以 root 身份,因为可能需要写入系统目录)
- COPY client ./client
- RUN cd client && npm run build
- COPY server ./server
- RUN cp -r client/dist/* server/public/ && \
- chown -R k6:k6 /app/server # 确保 server 目录权限正确
- WORKDIR /app/server
- # 暴露端口
- EXPOSE 9001
- # 切换到 k6 用户并启动服务
- USER root
- ENTRYPOINT ["/usr/bin/node"]
- CMD ["index.js"]
|