【发布时间】:2020-06-09 21:57:48
【问题描述】:
我正在尝试部署 nodejs 应用程序并使用此tutorial,
所以我的.gitlab-ci.yml 看起来像
image: docker
services:
- docker:dind
stages:
- deploy
step-deploy-prod:
stage: deploy
script:
- docker build -t app/vue-demo .
- docker run -d -p 80:80 --rm --name todoapp app/vue-demo
Dockerfile 看起来像
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# production stage
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
此配置工作正常,部署后 docker 容器仍然存在
但对于我的应用程序,我需要启动 npm run start 命令,所以我更改了 Dockerfile
FROM node:lts-alpine as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# production stage
FROM node:lts-alpine as production-stage
EXPOSE 80
CMD ["npm", "run", "start;"]
作业已通过,但 docker conatiner 在部署后已关闭 我做错了什么?
【问题讨论】:
标签: node.js docker nginx deployment gitlab-ci-runner