Reactjs 如何在Docker文件中使用CMD以分离模式在Docker中运行“httpd”?
这是我的文件- 映像成功构建,但未运行,将停止。我想从Docker容器访问Apache服务器提供的网站Reactjs 如何在Docker文件中使用CMD以分离模式在Docker中运行“httpd”?,reactjs,apache,docker,docker-compose,dockerfile,Reactjs,Apache,Docker,Docker Compose,Dockerfile,这是我的文件- 映像成功构建,但未运行,将停止。我想从Docker容器访问Apache服务器提供的网站 # build environment FROM node:13.12.0-alpine as build WORKDIR /app ENV PATH /app/node_modules/.bin:$PATH COPY package.json ./ COPY package-lock.json ./ RUN npm ci --silent RUN npm install react-scri
# build environment
FROM node:13.12.0-alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
RUN npm ci --silent
RUN npm install react-scripts@3.4.1 -g --silent
COPY . ./
RUN npm run build:staging
# production environment
FROM httpd:latest
COPY --from=build /app/build /usr/local/apache2/htdocs
EXPOSE 80
CMD ["httpd"]
您应该删除
CMD[“httpd”]
,请参阅:
CMD[“httpd前台”]
那里已经有一个前景httpd
最后,为什么CMD[“httpd”]不起作用?
Dockerfile
中定义的CMD
将充当容器的PID1
。在docker中,如果PID1
退出,则容器也将退出
- 如果使用
,apache进程将始终位于前面,因此进程不会退出,那么容器是活动的CMD[“httpd前台”]
- 如果使用
,CMD[“httpd”]
将在执行后直接退出,然后httpd
退出,因此容器退出PID1