如何为php和node创建docker镜像?

时间:2017-06-09 01:15:02

标签: php node.js docker

我正在尝试为我的angular创建一个docker容器,其中包含php文件。 Angular需要npm所以我需要安装nodejs。我不需要为我的项目提供apache,只需要纯PHP就可以了。

我的理解是我应该有一个

FROM node:latest

..install php here

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app
RUN npm install

COPY . /usr/src/app

我不知道如何在我的情况下安装php,有人能指出我正确的方向吗?非常感谢!

2 个答案:

答案 0 :(得分:5)

我认为在这种情况下,更好的方法是像下面这样一起使用节点docker映像和PHP docker映像,而不要使用apt-get install

安装其中之一
FROM node:latest AS node
FROM php:7.4-fpm

COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules
COPY --from=node /usr/local/bin/node /usr/local/bin/node
RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app
RUN npm install

COPY . /usr/src/app

通过这种方式,您不需要每次更改代码并在Dockerfile中从头开始重建时都不需要安装节点或PHP软件包

答案 1 :(得分:2)

我建议你换一种方式。由于php比安装时间长,请使用php映像并安装节点。

FROM php:5.6-apache

RUN apt-get update && apt-get install -y node npm
#WORKDIR is /var/www/html
COPY . /var/www/html/
RUN npm install

然后你有apache2提供的.php文件。