在gitlab CI管道中修改docker镜像

时间:2018-01-12 16:08:47

标签: docker gitlab gitlab-ci docker-in-docker

我想创建一个docker镜像,将其作为容器启动(配置数据库凭据等),提交这些更改,标记它并将其推送到容器注册表:

ALTER TABLE user 
ADD CONSTRAINT fk_user_1
FOREIGN KEY (id_user)
REFERENCES doctor (id_user)
ON DELETE CASCADE
ON UPDATE NO ACTION;

我不明白为什么但是尽管from .gitlab-ci.yml: configure_db_image: stage: docker_build tags: - docker-in-docker script: - docker login <gitlab-CI-CR> -u gitlab-ci-token -p $CI_JOB_TOKEN - docker pull <gitlab-CI-CR>/db-template/db-template-image:latest - docker tag <gitlab-CI-CR>/db-template/db-template-image:latest <gitlab-CI-CR>/my-project/my-repo/test-db-image:latest # Remove the container if it exists already - docker rm -f test-db-image-container || true - docker create -i -p 5432:5432 --name test-db-image-container --env 'CREATE_ONLY_ON_FIRST_RUN=yes' --env 'DB_USER=user' --env 'DB_PASS=pass' --env 'DB_NAME=dbname' <gitlab-CI-CR>/my-project/my-repo/test-db-image:latest - docker start -i test-db-image-container - docker stop test-db-image-container - docker commit test-db-image-container test-db-image - docker tag test-db-image <gitlab-CI-CR>/my-project/my-repo/test-db-image:latest - docker push <gitlab-CI-CR>/my-project/my-repo/test-db-image:latest 我没有配置从注册表中提取的图像。我哪里错了?

1 个答案:

答案 0 :(得分:0)

这与所描述的一样 - 问题在于父映像中的Dockerfile,它声明了数据库更改在文件系统中作为Docker卷发生的路径。因此,当图像被推送到注册表时,它们不会持续存在。

相关问题