2017-06-25 5 views
0

私は現在、Jenkinsファイルを設定して、PHP分析をコンテナ内で実行することができました。これを実行するとJenkinsfileを使用しているときにDockerコンテナ内のリポジトリをチェックアウトするにはどうすればよいですか?

node { 
    stage "Prepare environment" 
     checkout scm 
     def environment = docker.build 'platforms-base' 

     environment.inside { 
      stage "Update Dependencies" 
       sh "composer install || true" 
     } 
} 

、レポがホストマシンにチェックアウトされているようですし、そのディレクトリは/appディレクトリにドッカ容器に装着されている。ここでの要点です。 (私はこれについて何も設定していないので、これがどこに定義されているのかわかりません)

同じ容器にMagento2が/var/magento2ディレクトリにインストールされています。私はMagento2コードベースの範囲内でいくつかのテストを実行する必要があります。これは、コンテナ内の特定のディレクトリに現在のブランチをチェックアウトする必要があることを意味します(/var/magento2/vendor/myorg/mypackage/)が、チェックアウトされたレポは/appにあるようです。

コンテナ内の特定の場所でレポをチェックアウトするにはどうすればよいですか?

答えて

1

/appは、現在のディレクトリを/appとしてマウントするため、コンテナ内にマウントされます(または使用しているDockerファイル)。

あなたのコードはすでにJenkinsのチェックアウト済みのです。したがって、私はドッカーのコンテナから別途追加のチェックアウトをしません。 Jenkinsは正しい資格情報であなたのために正しいブランチ/マスター/タグをチェックアウトしました。あなた自身で行う必要はありません。

次の3つの基本的な選択肢が持っている:

  • マウントません/appとして、現在のディレクトリを、しかし/var/magento2/vendor/myorg/mypackage/

  • マウント/app/var/magento2/vendor/myorg/mypackage/両方として、現在のディレクトリとして。おそらくDockerfileを変更するのではなく、余分なコマンドラインオプションでこれを行うこともできます。 (これはあなたの開発環境に大きく依存します)。

  • /var/magento2/vendor/myorg/mypackage//appへのシンボリックリンクを作ってください。それはおそらくはうまくいくでしょう。

関連する問題