我正在尝试为我的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,有人能指出我正确的方向吗?非常感谢!
答案 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文件。