GitLab CI中PostgreSQL服务无法访问的问题排查与解决求助
GitLab CI中PostgreSQL服务无法访问的问题排查与解决求助
我快被这个问题搞疯了!我想在GitLab CI的gitlab-ci.yml配置里启动一个PostgreSQL数据库,按照我的理解,Web应用应该能通过postgres:5432访问它,但实际完全不行——同样运行在Docker容器里的Web应用根本连不上这个数据库。
我的gitlab-ci.yml相关配置
deploy_test: image: docker stage: deploy_test services: - name: postgres alias: postgres - name: docker:23.0.6-dind variables: POSTGRES_DB: postgresdb POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_HOST_AUTH_METHOD: trust script: - apk --no-cache add curl - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker run -e DATABASE_URL="postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_DB" -d -p 8080:80 --name $TEST_APP_CONTAINER_NAME $CI_REGISTRY/$APP_CONTAINER_URL:$VERSION # Wait for the web app to be ready - timeout 300s sh -c 'until status_code=$(curl -s -o /dev/null -w ''%{http_code}'' http://$TEST_APP_CONTAINER_NAME:8080); [ "$status_code" -eq 200 ]; do sleep 5; echo "HTTP Status Code= $status_code"; docker ps -a; docker logs $TEST_APP_CONTAINER_NAME; done' - echo "Test web app is ready!"
等待循环的输出日志
HTTP Status Code= 000 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8bb3f101174e registry.gitlab.com/X/testapp/testapp:v1 "docker-entrypoint.s…" 8 seconds ago Exited (1) 4 seconds ago e2e_container > start:migrate:prod > prisma migrate deploy && npm run start Prisma schema loaded from prisma/schema.prisma Datasource "db": PostgreSQL database "postgresdb", schema "public" at "postgres:5432" Error: P1001: Can't reach database server at `postgres`:`5432` Please make sure your database server is running at `postgres`:`5432`. npm notice npm notice New minor version of npm available! 10.2.4 -> 10.5.0 npm notice Changelog: <https://github.com/npm/cli/releases/tag/v10.5.0> npm notice Run `npm install -g npm@10.5.0` to update! npm notice
我的几个疑问
- 为什么运行
docker ps -a的时候看不到数据库容器?我本来以为GitLab CI的services会用独立的Docker容器启动的啊? - 我了解过Docker网络的概念,是不是我的Web应用和数据库不在同一个网络里才导致连不上?
- 这种情况下,在启动Web应用之前,我该怎么检查数据库是不是真的在运行?
- 最后求各位大佬给点能让这个流程跑通的建议,真的万分感谢!
备注:内容来源于stack exchange,提问作者zabzze
相关产品推荐
相关产品推荐

