CI / CD vuejs部署的管理

时间:2020-04-28 11:40:28

标签: node.js vue.js deployment gitlab environment-variables

在使用 CI / CD gitlab 部署 vuejs 项目时,我需要帮助。

在这种情况下,我有3个文件环境

  1. .env.development.local
  2. .env.staging.local
  3. .env.production.local

我在这里使用其他 baseHref / publicPath

  1. /开发
  2. /阶段
  3. /生产

在此阶段,我将按照教程Here.

但我仍然对如何使用其他环境进行部署感到困惑。

通常我使用以下命令:

  1. 分期

npm run build---mode阶段

  1. 生产

npm run build---mode production

这是我制作的 en 的示例:

# Environment Local

NODE_ENV=development
BASE_URL = /development/
VUE_APP_TITLE=Website (development)
VUE_APP_END_POINT='http://localhost:8000/api/v1/'
VUE_APP_CLIENT_ID = 12341
VUE_APP_CLIENT_SECRET = 'asdASD1123s'
VUE_APP_SCOPE = '*'
VUE_APP_BASE_URL_LINK = 'http://localhost:8080'
VUE_APP_VERSION =

这是我拥有的 vue.config.js 文件:

process.env.VUE_APP_VERSION = require('./package.json').version

module.exports = {
    publicPath: process.env.BASE_URL,
    "transpileDependencies": [
        "vuetify"
    ]
}

我做的分支

  1. 测试
  2. 发展
  3. 主人

在gitlab-ci.yml中:

build site:
  image: node:6
  stage: build
  script:
    - npm install --progress=false
    - npm run build
  artifacts:
    expire_in: 1 week
    paths:
      - dist

unit test:
  image: node:6
  stage: test
  script:
    - npm install --progress=false
    - npm run unit

deploy:
  image: alpine
  stage: deploy
  script:
    - apk add --no-cache rsync openssh
    - mkdir -p ~/.ssh
    - echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
    - chmod 600 ~/.ssh/id_dsa
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    - rsync -rav --delete dist/ user@server.com:/var/www/website/

使用上述gitlab-ci.yml的配置,我只能部署本地环境。

我希望有人希望分享他们关于 CI / CD 部署 vuejs 的知识和经验。或提供一些 CI / CD vuejs 教程参考多个环境

非常感谢您。

2 个答案:

答案 0 :(得分:0)

您尝试拥有多少工作?如果您完成3个工作,并且发送了参数,则可以。

您有印刷品或工作实例吗?

答案 1 :(得分:0)

我在我的项目中找到了一个dockerfile,如果它可以帮助您:

FROM node:12.16.1 AS builder
RUN mkdir /app
COPY *.json /app/
COPY src /app/src
WORKDIR /app
RUN npm install
RUN npm run build

FROM nginx:1.15.8
COPY --from=builder /app/dist/ /usr/share/nginx/html
EXPOSE 80:80
ENTRYPOINT ["nginx", "-g", "daemon off;"]

别忘了使用多阶段docker;)