Tratando con datos en Docker Containers con Gitlab-Ci

Así que estoy usando gitlab-ci para implementar mis sitios web en contenedores acoplables, porque el cornetworkingor gitlab-ci docker no parece hacer lo que quiero hacer. Estoy usando el ejecutor de shell y lo dejo ejecutar docker-compose up -d . Aquí viene el problema.

Tengo 2 volúmenes en mi contenedor acoplable. ./:/var/www/html/ (que es el contenido de mi git repo, por lo que los files que quiero replace en la compilation) y un assembly que está "dentro" de este mount /srv/data:/var/www/html/software/permdata (que es un assembly persistente en mi server).

Cuando el cornetworkingor gitlab-ci se inicia, intenta eliminar todos los files mientras el contenedor se está ejecutando, pero debido a este assembly en el assembly, se pone un device busy y se cancela. Así que tengo que detenerme manualmente y eliminar el contenedor antes de poder ejecutar mi compilation (que de alguna manera derrota el punto de automation de compilation).

Opciones que pensé para solucionar este problema:

  1. detener y eliminar el contenedor antes de que comience gitlab-ci-multi-runner (parece que no es posible)
  2. agregue los datos de git a mi contenedor de docker y solo monte mi permdata (parece que no puede agregar datos a un contenedor sin la opción de volumen con Docker compose como puede en un Dockerfile)

La opción 2 sería ideal porque luego también resolvería mis problemas con permissions en los files. Tal vez alguien ha pasado por el mismo problema y podría darme un consejo

Parece que no se pueden agregar datos a un contenedor sin la opción de volumen con Docker componer como se puede en un file Docker

Eso es correcto. El file Compose no está destinado a replace el file Docker, está destinado a ejecutar múltiples imágenes para una aplicación o proyecto.

Puede modificar el Dockerfile para copyr en los files git.