【问题标题】:Gitlab CI shell runner fails with docker-compose upGitlab CI shell 运行器因 docker-compose up 而失败
【发布时间】:2022-01-03 17:28:31
【问题描述】:

我正在尝试使用 wsl shell 运行程序启动多个 docker 容器。运行后

compose_job:
  tags:
   - wsl
  stage: compose
  script:
    - cd /pathToComposeFile
    - docker-compose up
  dependencies:
    - pull_job

跑步者对以下错误感到兴奋:

$ docker-compose up
docker:无效的引用格式:存储库名称必须为小写。

docker-compose.yml 是:

version: '3'

services:
  cron:
    build: cron/.
    container_name: cron
    image: cron_image
    ports:
      - 6040:6040

引用的图片都是小写的,同样的命令按预期被激发 如果手动运行。我已经检查了 docker-compose 是可访问的,并且 docker-compose.yml 是可读的。我该如何解决这个问题?提前谢谢!

【问题讨论】:

  • 你能显示文件 docker-compose.yml 吗?
  • 当然,我编辑了问题。
  • answer 有帮助吗?
  • @DV82XL 不幸的是,答案不适用于我的情况,因为我没有使用任何大写字母。我还将 docker-compose.yml 更改为最小示例。
  • 为什么要在管道中使用 docker-compose up 而不是 gitlab 服务?您是否需要运行 API 或其他东西,或者需要启动一些数据库?如果是这种情况,请参阅以下答案:stackoverflow.com/questions/66071016/…。无论如何,我没有看到 docker-compose 的单一用例,所以我强烈建议改用 gitlab 服务:docs.gitlab.com/ee/ci/services

标签: docker docker-compose gitlab-ci windows-subsystem-for-linux


【解决方案1】:

我认为 service_name、container_name 和 env 必须是小写的。 看起来像

version: '3'

services:
  perihubapi:
    build:
      context: api/.
      args: 
        EXTERNAL: ${external}
        FASERVICES: ${faservices}
    container_name: perihubapi
    image: peri_hub_api_image
    ports:
      - 6020:6020
    networks:
      - backend
    volumes:
      - peridigm_volume:/app/peridigmJobs
      - paraView_volume:/app/paraView
      - secrets:/app/certs

  perihubgui:
    build: gui/.
    container_name: perihubgui
    image: peri_hub_gui_image
    ports:
      - 6010:6010
    networks:
      - backend
    volumes:
      - secrets:/app/certs

  peridigm:
    build: 
      context: peridigm/.
      args: 
        GITLAB_USER: ${gitlab_user}
        GITLAB_TOKEN: ${gitlab_token}
        PERIDOX: ${peridox}
    container_name: peridigm
    image: peridigm_image
    ports:
      - 6030:6030
    networks:
      - backend
    volumes:
      - peridigm_volume:/app/peridigmJobs

  paraview:
    build: 
      context: paraview/.
    container_name: paraview
    image: paraview_image
    volumes:
      - paraView_volume:/app/paraView

  cron:
    build: cron/.
    container_name: cron
    image: cron_image
    ports:
      - 6040:6040
    networks:
      - backend
  
networks:
  backend:
    driver: bridge

volumes:
  peridigm_volume:
  paraView_volume:
  secrets:
    external: true

【讨论】:

  • 我删除了 docker-compose.yml 中的所有大写字母,不幸的是错误是一样的。
猜你喜欢
  • 2021-10-17
  • 2021-10-29
  • 1970-01-01
  • 2022-01-16
  • 2016-08-05
  • 2021-04-26
  • 1970-01-01
  • 2020-02-02
  • 2019-11-07
相关资源
最近更新 更多