首页 > 解决方案 > GitLab AutoDevops 环境问题

问题描述

所以我是从 Travis 和 Github 切换到 Gitlab Autodevops 的新手。我目前面临的问题是,当我进行推送并且管道启动时,它看不到我的任何列表环境变量。我为 mongodb 和 redis 设置生产和测试环境变量,但在管道期间,它试图为两者连接到 localhost,完全忽略了 CI/CD 设置中设置的环境变量。请看下面的图片:

Dockerfile

WORKDIR /app
COPY package*.json ./
RUN apk add --update alpine-sdk nodejs npm python
RUN LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH && export LD_LIBRARY_PATH && npm i
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

码头工人-compose.yml

version: "3.7"

services:
  backend:
    container_name: dash-loan
    environment:
      MONGODB_PRODUCTION_URI: ${MONGODB_PRODUCTION_URI}
      MONGODB_TEST_URI: ${MONGODB_TEST_URI}
      REDIS_PRODUCTION_URL: ${REDIS_PRODUCTION_URL}
      REDIS_TEST_URL: ${REDIS_TEST_URL}
      PM2_SECRET_KEY:  ${PM2_SECRET_KEY}
      PM2_PUBLIC_KEY: ${PM2_PUBLIC_KEY}
      PM2_MACHINE_NAME: ${PM2_MACHINE_NAME}
      PORT: ${PORT}
      MODE_ENV: ${NODE_ENV}
    restart: always
    build: .
    ports:
      - "8080:3000"
    links:
      - mongodb
      - redis

  mongodb:
    container_name: mongo
    environment:
      MONGO_INITDB_DATABASE: dashloan
      MONGO_INITDB_ROOT_USERNAME: sampleUser
      MONGO_INITDB_ROOT_PASSWORD: samplePassword
    restart: always
    image: mongo
    ports:
      - "27017-27019:27017-27019"
    volumes:
      - ./src/database/init-mongo.js:/docker-entrypoint-point.initdb.d/init-mongo.js:ro
      - ./mongo-volume:/data/db

  redis:
    container_name: redis
    restart: always
    image: redis:5.0
    ports:
      - "6379:6379"

volumes:
  mongo-volume:

.gitlab-ci.yml

image: node:latest

services:
  - mongo:latest
  - redis:latest

cache:
  paths:
    - node_modules/

job:
  script:
    - npm i
    - npm test

我需要有关如何确保测试管道使用我设置的环境变量的帮助;并且不尝试连接到失败的本地主机。

gitlab管道上的错误

Gitlab 中的变量

运行良好的 GKE

标签: gitlabgoogle-kubernetes-enginedevopsgitlab-cipipeline

解决方案


You could use shell runner instead of docker runner and then just call docker-compose in before script.

cache:
  paths:
    - node_modules/

job:
  before_script:
    - docker-compose up -d
  script:
    - npm i
    - npm test
  after_script:
    - docker-compose down

推荐阅读