2017-02-27 3 views
0

最新版のPHP Nodeに対してユニットテストを実行したいのですが、これは両方ともBitbucket Pipelinesで動作するように1つのイメージにインストールする必要があることを意味します。Dockerで複数のベースイメージを使用するには?

私が今まで行ってきたことは、どちらか一方を自分のベースとして選択し、もう一方を手動でインストールすることです。例えば、私は私のベースとしてphp:5.6-fpmで開始した後、インストールしたノード:

# Dockerfile 
FROM php:5.6-fpm 

RUN docker-php-ext-install bcmath 
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - 
RUN apt-get install -y git mercurial unzip nodejs 
RUN npm set progress=false 
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 
RUN php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer 
RUN php -r "unlink('composer-setup.php');" 

両方 PHPと私のイメージのため Nodeし、その上にいくつかのものをインストールする(利用する方法はあります例:作曲家と糸)?

+2

コンテナはシンプルで、1つのことを(通常は)行う必要があります。 PHPとノードの両方を使用する場合は、2つのコンテナを定義してボリュームを共有します。 –

+0

@MateuszSipまだDockerを学んでいますが、Bitbucket Pipelinesはこれをまだサポートしていません。https://bitbucket.org/site/master/issues/12757/ability-to-run-multiple-docker-containersだから、 CIツールを切り替えない限り、1つのイメージを構築するという選択肢はありません。 – mpen

+1

この機能はDockerからまだ利用できません。ディスカッション[here](https://github.com/docker/docker/pull/12749)と[here](https://github.com/docker/docker/issues/3378) –

答えて

1
あなたが画像を作成することができ

とすることによってのみ、ローカルマシン上のいずれかのcommitそれは:から docker commit <container-id> image-name:tagnamehttps://docs.docker.com/engine/reference/commandline/commit/

その後あなたが追加されますFROM image-name:tagname

すべてを使用して新しいDockerfileでこの画像を使用します新しいDockerファイルがPHPとNode.jsで作成した画像の上に重ねて表示されます

時には、異なるプロセスで進行するいくつかの画像レイヤを作成することができますと機能。 https://hub.docker.com/u/million12/

PHPで基本イメージを作成し、次にNode.jsがインストールされているPHPイメージを使用して別のイメージを作成し、次に別のイメージを使用して別のイメージを作成することができます。

あなたがローカルマシンからあなたのイメージをエクスポートしたい場合は、あなたの質問に答えquay.io

希望のようなドッキングウィンドウハブおよびエクスポートそれにまたは代替サービスに登録する必要があります。

+0

を参照してください....私はまだノードまたはPHPを手動でインストールする必要がありますか?私はイメージを作り出すのに使うことができないのですか? – mpen

+0

あなたのニーズに合ったイメージを見つけたらそれを使用してください。画像がどのように作成されているかを確認するにはgithub repoを見てください。しかし、ある時点で独自のイメージを作成する必要がある場合は、独自のイメージを作成するか、またはパブリックイメージを最初のベースイメージとして使用する必要がありますが、次はすべて独自のカスタムイメージから作成する必要があります。 –

関連する問題