gpt4 book ai didi

reactjs - 如何在Dockerfile中使用CMD以分离模式在Docker中运行 `httpd`?

转载 作者:行者123 更新时间:2023-12-02 18:17:28 25 4
gpt4 key购买 nike

这是我的 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-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"],参见this :

CMD ["httpd-foreground"]

那里已经有一个前台httpd。

最后,为什么 CMD ["httpd"] 不起作用?

Dockerfile 中定义的 CMD 将作为容器的 PID1。在docker中,如果PID1退出,那么容器也会退出。

  • 如果使用CMD ["httpd-foreground"],apache进程会一直在前面,所以进程不会退出,那么容器是存活的。
  • 如果使用CMD["httpd"]httpd执行完会直接退出,然后PID1退出,所以容器退出。

关于reactjs - 如何在Dockerfile中使用CMD以分离模式在Docker中运行 `httpd`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64383322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com