首页 文章

使用Gitlab-Ci处理Docker容器中的数据

提问于
浏览
0

所以我使用gitlab-ci在docker容器中部署我的网站,因为gitlab-ci docker runner似乎没有做我想做的事情我正在使用shell Actuator 并让它运行 docker-compose up -d . 这就是问题所在 .

我的docker-container中有2卷 . ./:/var/www/html/ (这是我的git repo的内容,所以我想要在构建时替换的文件)和一个_st11128_这个mount /srv/data:/var/www/html/software/permdata 的挂载(这是我服务器上的持久挂载) .

当gitlab-ci运行器启动时,它会尝试在容器运行时删除所有文件,但由于mount中的这个mount会得到 device busy 并中止 . 因此,在运行构建之前,我必须手动停止并删除容器(哪种方式会破坏构建自动化) .

我想要解决这个问题的选项:

  • 在gitlab-ci-multi-runner启动之前停止并删除容器(似乎不可能)

  • 将git数据添加到我的docker容器中,并且只挂载我的permdata(好像你不能将数据添加到容器中而没有与docker compose一样的volume选项,就像你在Dockerfile中一样)

选项2将是理想的,因为它还可以解决我对文件权限的问题 . 也许有人遇到了同样的问题,可以给我一个建议

1 回答

  • 0

    似乎你不能像没有Docker文件中那样使用docker compose将容器数据添加到容器中

    那是对的 . Compose文件不是要替换Dockerfile,而是为应用程序或项目运行多个映像 .

    您可以修改 Dockerfile 以复制git文件 .

相关问题