这是我的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 [email protected] -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"]
,请参阅this:
那里已经有一个前台httpd了。
最后,为什么CMD [“httpd”]不起作用? CMD
中定义的Dockerfile
将充当您容器的PID1
。在docker中,如果PID1
退出,则容器也将退出。
CMD ["httpd-foreground"]
,则apache进程将始终位于最前面,因此该进程不会退出,则该容器仍处于 Activity 状态。 CMD ["httpd"]
,则httpd
将在执行后直接退出,然后PID1
退出,因此容器退出。 关于reactjs - 如何在Dockerfile中使用CMD在分离模式下在Docker中运行 `httpd`?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64383322/