2016-09-16 14 views
0

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となり、アボートします。だから、ビルドを実行する前に、手動でコンテナを停止して取り除かなければなりません(ビルドの自動化のポイントを打ち負かします)。

オプション私はこの問題を解決しようと考えた:ストップ

  1. とgitlab-CI-マルチランナーを開始する前にコンテナを削除(ことはできないようです)
  2. 私のドッキングウィンドウコンテナにgitのデータを追加し、私のpermdataをマウントするだけです(Dockerファイルのようにボリュームオプションなしのコンテナにデータを追加することはできません)

オプション2は理想的ですファイルに対するアクセス権を持っています。 は多分誰かが同じ問題を経験してきたと私にアドバイス

答えて

0

を与えることができるあなたがドッキングウィンドウでボリュームのオプションを使用せずにコンテナにデータを追加することはできませんように思えるあなたのような構成することができDockerfile

それは正しいです。 ComposeファイルはDockerファイルを置き換えるものではなく、アプリケーションやプロジェクト用に複数のイメージを実行するためのものです。

Dockerfileを修正して、gitファイルにコピーすることができます。

+0

ありがとうございますが、私はすでにそれを知っています。しかし、新しい問題の巨大なリストを作成するので、すべてのコンテナのための新しいDockerfileとイメージを作成することはこの問題には望ましくありません。 – user3676487

関連する問題