Gitlab CI和Docker无法对postgres容器进行任何操作

我尝试configurationodoo和postgres docker容器的连续testing/集成。 但是我遇到了一个问题,Gitlab CI无法对docker postgres进行任何操作。 我的目标是在运行testing之前将数据库模板放入postgres容器中。

我试图在shell执行程序之后使用ssh执行程序,但是我始终坚持同样的问题。 注意这里的所有命令都可以在runner上完成而没有问题,我testing一下。 我写了这个yml文件:

variables: # Configure postgres service (https://hub.docker.com/_/postgres/) POSTGRES_DB: db POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo before_script: # Pull container version - docker pull postgres:9.5 - docker pull odoo:8.0 after_script: # Remove all used container - docker stop $(docker ps -a -q) && docker rm $(docker ps -aq) stages: - prepare job1: stage: prepare # prepare postgres db script: #Launch postgres container - docker run -d -e POSTGRES_USER=$POSTGRES_USER -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD --name db postgres:9.5 # Copy and restore db template - docker cp /home/myuser/odoov8_test.dump db:/home - docker exec -i db su -s /bin/sh - postgres -c "createdb odoov8_test && pg_restore -d odoov8_test --no-owner --verbose /home/odoov8_test.dump" # launch odoo with own addons folder (/own/path/to/addons:/mnt/extra-addons) testdatabase (-d) module to install without space with all dependances (-i) test unable (--test-enable) and stop after init (--stop-after-init) - docker run -v $CI_PROJECT_DIR:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo:8.0 -- -d odoov8_test.dump -i crm,sale --test-enable --stop-after-init 

我得到了这个结果:

 [0KRunning with gitlab-ci-multi-runner 1.11.2 (0489844) on Test docker odoo (7fafb15a) [0;m[0KUsing Shell executor... [0;mRunning on debian-8-clean... [32;1mFetching changes...[0;m HEAD est maintenant à 7d196ea Update .gitlab-ci.yml Depuis https://myserver.com/APSARL/addons-ext 7d196ea..47591ac master -> origin/master [32;1mChecking out 47591ac6 as master...[0;m [32;1mSkipping Git submodules setup[0;m [32;1m$ docker pull postgres:9.5[0;m 9.5: Pulling from library/postgres Digest: sha256:751bebbc12716d7d9818678e91cbec8138e52dc4a084f0e81c58cd8b419930e5 Status: Image is up to date for postgres:9.5 [32;1m$ docker pull odoo:8.0[0;m 8.0: Pulling from library/odoo Digest: sha256:9deda039e0df28aaf515001dd1606ab74a16ed25504447edc2912bca9019cd43 Status: Image is up to date for odoo:8.0 [32;1m$ docker run -d -e POSTGRES_USER=$POSTGRES_USER -e POSTGRES_PASSWORD=$POSTGRES_PASSWORD --name db postgres:9.5[0;m 60a0c75fd55e953e6a25a3cc0f13093ec2f1ee96bfb8384ac19d00f740dd1d4e [32;1m$ docker cp /home/myuser/odoov8_test.dump db:/home [0;m[32;1m$ docker exec -i db su -s /bin/sh - postgres -c "createdb odoov8_test && pg_restore -d odoov8_test --no-owner --verbose /home/odoov8_test.dump" [0;m createdb: could not connect to database template1: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? [32;1mRunning after script...[0;m [32;1m$ docker stop $(docker ps -a -q) && docker rm $(docker ps -aq)[0;m 60a0c75fd55e 60a0c75fd55e [31;1mERROR: Job failed: exit status 1 [0;m