Gitlab CI & Docker Can't make any operation on

2019-08-20 12:13发布

I try to configure continuous testing/integration with odoo and postgres docker container. But I stuck on a problem, Gitlab CI can't do any operations on docker postgres. My goal is to put a database template into a postgres container after run it and before testing.

I tried to use ssh executor after shell executor, but I always stuck on the same problem. Notice that all commands here can be complete on the runner without problems, I test it. I wrote this yml files:

    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

I got this result:

[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

0条回答
登录 后发表回答