最新版の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し、その上にいくつかのものをインストールする(利用する方法はあります例:作曲家と糸)?
コンテナはシンプルで、1つのことを(通常は)行う必要があります。 PHPとノードの両方を使用する場合は、2つのコンテナを定義してボリュームを共有します。 –
@MateuszSipまだDockerを学んでいますが、Bitbucket Pipelinesはこれをまだサポートしていません。https://bitbucket.org/site/master/issues/12757/ability-to-run-multiple-docker-containersだから、 CIツールを切り替えない限り、1つのイメージを構築するという選択肢はありません。 – mpen
この機能はDockerからまだ利用できません。ディスカッション[here](https://github.com/docker/docker/pull/12749)と[here](https://github.com/docker/docker/issues/3378) –