Heroku에서 Apache HTTP Server 컨테이너를 그대로 움직이려고하면 crash를 해결하는 메모
2731 단어 dockerfile경 6아파치httpd
결론부터 말하면
컨테이너를 푸시하면 오류가 발생합니다.
예를 들면 Dockerfile는 이런 느낌.
FROM httpd:alpine
MAINTAINER xsgk
ADD ./index.html /usr/local/apache2/htdocs
이것을 배포하면,
State changed from starting to crashed
토카
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
라든지, 이미 에러의 대합창. bind가 할 수 없다는 것은 무엇인가 처음에 접속할 수 없어, 라고 생각하고 있으면 이런 것을 stackoverflow 로 발견했다. 마찬가지로 Apache의 httpd를 사용하여 연결할 수 없다는 상황을 다음과 같이 해결했다.
Deploy a Dockerized Laravel app using Apache on Heroku
I discovered I could insert a CMD statement at the end of my Dockerfile to sed replace the ports in my apache config files to the magical $PORT environment variable at run time.
(의역)
Dockerfile 끝에 CMD 문을 삽입하는 방식으로 sed 명령을 사용하여 Apache 구성 파일의 포트 스펙을 런타임의 $PORT 환경 변수 값으로 바꿀 수 있음을 발견했습니다.
과연, 해보자.
$PORT 값으로 다시 쓰는 프로세스를 Dockerfile에 추가했습니다.
이번 Dockerfile 은 이런 식으로, ENTRYPOINT 가 실행되는 타이밍에 http.conf 중의 Listen 지시어를 치환( sed
) 한 뒤, 본래의 컨테이너 기동시의 커멘드( httpd-foreground
)를 실행하도록 기술.
FROM httpd:alpine
MAINTAINER xsgk
ADD ./index.html /usr/local/apache2/htdocs
ENTRYPOINT []
CMD sed -i -e "s/Listen 80/Listen $PORT/g" /usr/local/apache2/conf/httpd.conf && httpd-foreground
이것을 배포하면
나왔다. 이상.
참고
Deploy a Dockerized Laravel app using Apache on Heroku
Reference
이 문제에 관하여(Heroku에서 Apache HTTP Server 컨테이너를 그대로 움직이려고하면 crash를 해결하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/xsgk/items/d304e2907beafbf692f2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
FROM httpd:alpine
MAINTAINER xsgk
ADD ./index.html /usr/local/apache2/htdocs
이번 Dockerfile 은 이런 식으로, ENTRYPOINT 가 실행되는 타이밍에 http.conf 중의 Listen 지시어를 치환(
sed
) 한 뒤, 본래의 컨테이너 기동시의 커멘드( httpd-foreground
)를 실행하도록 기술.FROM httpd:alpine
MAINTAINER xsgk
ADD ./index.html /usr/local/apache2/htdocs
ENTRYPOINT []
CMD sed -i -e "s/Listen 80/Listen $PORT/g" /usr/local/apache2/conf/httpd.conf && httpd-foreground
이것을 배포하면
나왔다. 이상.
참고
Deploy a Dockerized Laravel app using Apache on Heroku
Reference
이 문제에 관하여(Heroku에서 Apache HTTP Server 컨테이너를 그대로 움직이려고하면 crash를 해결하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/xsgk/items/d304e2907beafbf692f2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Heroku에서 Apache HTTP Server 컨테이너를 그대로 움직이려고하면 crash를 해결하는 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xsgk/items/d304e2907beafbf692f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)