gitlab-ciドッカーランナーは私がしたいことをしていないため、gitlab-ciを使用してウェブサイトを展開しています。シェルエグゼキュータを開き、docker-compose up -d
を実行させます。ここで問題が起こる。Gitlab-Ciを使用したDockerコンテナでのデータの処理
私はドッキング用のコンテナに2つのボリュームを持っています。 ./:/var/www/html/
(これは私のgit repoの内容なので、私がビルド時に置き換えたいファイルです)とこのマウントの "内側"のマウント/srv/data:/var/www/html/software/permdata
(これは私のサーバー上の永続的なマウントです)。
gitlab-ciランナーが起動すると、コンテナの実行中にすべてのファイルを削除しようとしますが、このマウントがマウントされているためにdevice busy
となり、アボートします。だから、ビルドを実行する前に、手動でコンテナを停止して取り除かなければなりません(ビルドの自動化のポイントを打ち負かします)。
オプション私はこの問題を解決しようと考えた:ストップ
- とgitlab-CI-マルチランナーを開始する前にコンテナを削除(ことはできないようです)
- 私のドッキングウィンドウコンテナにgitのデータを追加し、私のpermdataをマウントするだけです(Dockerファイルのようにボリュームオプションなしのコンテナにデータを追加することはできません)
オプション2は理想的ですファイルに対するアクセス権を持っています。 は多分誰かが同じ問題を経験してきたと私にアドバイス
ありがとうございますが、私はすでにそれを知っています。しかし、新しい問題の巨大なリストを作成するので、すべてのコンテナのための新しいDockerfileとイメージを作成することはこの問題には望ましくありません。 – user3676487