You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI/CD中基于Docker Compose运行Python单元测试的配置问题求助

GitLab CI/CD中基于Docker Compose运行Python单元测试的配置问题求助

大家好,我最近在尝试用Docker Compose在GitLab里搭建CI/CD流水线,目的是运行我的Flask应用的单元测试——这些测试需要连接到PostgreSQL数据库才能正常执行。折腾了好几天,各种调整配置都没成功,实在没思路了,想请教下各位有没有解决办法,或者有没有更简单的实现方式?

先给大家看下我的配置文件:

docker-compose.yml

version: '3.8'

services:
  postgres:
    build:
      context: .
      dockerfile: ./dockerfile-db
    environment:
      POSTGRES_USER: 'xxx'
      POSTGRES_PASSWORD: 'xxx'

  flask:
    build:
      context: .
      dockerfile: ./dockerfile-flask
    ports:
      - "5000:5000"
    expose:
      - "5000"
    depends_on:
      - postgres
    environment:
      DB_HOST: 'postgres'
      DB_PORT: 5432
      DB_USER: 'xxx'
      DB_PW: 'xxx'
      SECRET_KEY: 'secretkey'
      APP_SETTINGS: 'config.SecureConfig'
    links:
      - postgres

.gitlab-ci.yml

image: docker/compose:latest

default:
  tags:
    - python

stages:
  - test

test_stage:
  stage: test
  script:
    - docker-compose up -d
    - docker-compose ps
    - docker-compose logs flask
    - docker-compose exec flask python -m unittest

遇到的问题

我加了docker-compose ps和docker-compose logs flask这两个命令来排查问题,但结果是docker-compose ps输出了一个空表,GitLab Runner也没有给出更多错误说明。目前我用的是Shell执行器,之前试过用Docker执行器加Docker-in-Docker(DinD)的配置,但遇到了这个错误:

error during connect: Get "http://docker:2375/v1.24/containers/[...]": dial tcp: lookup docker on XXX.XX.XX.XXX:XX: server misbehaving

这个错误里的IP是网络里另一台服务器的地址,完全不是我用的Runner所在的服务器。

真心希望大家能给点建议或者解决方案,谢谢了!

备注:内容来源于stack exchange,提问作者diamon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:13:10