我想對最新版本的PHP 和節點運行我的單元測試,這意味着我需要同時安裝到一個圖像中才能與Bitbucket Pipelines一起使用。如何在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我的圖像,然後在此基礎之上安裝一些東西(例如作曲家和紗線)?
容器應該很簡單,並且通常做一件事。如果你想使用php和node,只需定義兩個容器並共享一個卷。 –
@MateuszSip仍在學習Docker,但看起來Bitbucket Pipelines不支持這個:https://bitbucket.org/site/master/issues/12757/ability-to-run-multiple-docker-containers所以我不'除了切換CI工具之外,別無選擇,只能構建一個圖像。 – mpen
看起來像Docker尚未提供此功能。查看討論[這裏](https://github.com/docker/docker/pull/12749)和[這裏](https://github.com/docker/docker/issues/3378) –