我想针对最新版本的PHP 和节点运行我的单元测试,这意味着我需要将它们安装到一个图像中才能使用Bitbucket Pipelines。
到目前为止,我一直在做的是选择一个或另一个作为我的基础,然后手动安装另一个。例如,我已经开始使用php:5.6-fpm
作为我的基础,然后安装了Node:
# 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');"
答案 0 :(得分:1)
您可以通过以下方式在您的计算机上本地创建图像并commit
:
docker commit <container-id> image-name:tagname
来自:https://docs.docker.com/engine/reference/commandline/commit/
然后使用FROM image-name:tagname
您将添加到新Dockerfile的所有内容都将堆叠在您使用PHP和Node.js创建的图像之上
有时您可以创建多个图像层,这些图像将以不同的流程和功能进行。非常好的参考是:https://hub.docker.com/u/million12/
因此,您可以使用PHP创建基本映像,然后使用安装了Node.js的PHP映像创建基本映像,然后使用编写器创建另一个。
如果您希望从本地计算机导出图像,则应在docker hub上注册并导出到该版本或其他服务,如quay.io
希望能回答你的问题。