
정의에 따라 centos:7을 상속받아야 하는 Dockerfile을 만들고 nginx와 php를 설치하여 PHP 파일을 표시해야 합니다.
내 Dockerfile:
FROM centos:7
EXPOSE 80/tcp
RUN yum -y update
RUN yum -y install epel-release
RUN yum -y install nginx php php-fpm
RUN echo '<?php phpinfo();' > /var/www/demo/index.php
내 문제:
- 컨테이너가 생성되고 시작될 때 nginy가 시작되어야 한다는 것을 docker가 이해하게 하려면 어떻게 해야 합니까?
- nginx가 PHP를 사용하도록 하려면 어떻게 해야 합니까?
1. 내가 아는 것은 이것이 불가능하다는 것입니다.도커 빌드.
2. 튜토리얼을 사용하고 싶었지만 모두 잘못된 이유는 다음과 같습니다.
/etc/nginx/sites-available
디렉토리 가 없습니다snippets/fastcgi-php.conf
nginx.conf에 포함할 파일이 어디에도 없습니다.
저는 이전에 nginx를 사용해 본 적이 없어서 어디서부터 시작해야 할지 모르겠습니다. 해당 파일과 폴더가 모두 존재하지 않기 때문에 내가 찾은 튜토리얼이 작동하지 않습니다. 내가 얻는 것은 403 오류 페이지뿐입니다.
답변1
이것은 어느 시점에서 제가 여러분에게 제공할 접근 방식입니다. 여러분은 Nginx를 설치하고 구성해야 합니다.도커파일docker를 실행할 때 언제든지 시작하고 이것을 설정하십시오.도커-entrypoint.sh
도커파일:
#Install and config Nginx
RUN {\
apt-get install nginx -y\
rm /etc/nginx/sites-enabled/default\
}
ADD YOUR_CONFIG_FILE /etc/nginx/sites-enabled/
RUN service nginx start
RUN PATH="$PATH:docker-entrypoint.sh"
COPY docker-entrypoint.sh /
RUN chmod +x docker-entrypoint.sh
ENTRYPOINT ["./docker-entrypoint.sh"]
도커-entrypoint.sh:
#!/bin/bash
service nginx start
/bin/bash
도움이 되길 바랍니다!
답변2
다음을 추가하여 컨테이너를 활성 상태로 유지했습니다.
CMD ["nginx", "-g", "daemon off;"]
당신과 다른 동료들에게 도움이 되기를 바랍니다.