[英]I cannot resolve "Failed to start and then listen on the port defined by the PORT environment variable." error in Google Cloud Run with a Docker image
[英]Google Cloud Run fails to listen even after changing port to 8080
我最近在部署到 Cloud Run 時遇到了一些問題。 當我嘗試將以下 Dockerfile 部署到 Cloud Run 時,最終會出現錯誤無法啟動然后偵聽 PORT 環境變量定義的端口。 :
FROM phpmyadmin/phpmyadmin:latest
EXPOSE 8080
RUN sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf
ENTRYPOINT [ "/docker-entrypoint.sh" ]
CMD [ "apache2-foreground" ]
ENTRYPOINT 和 CMD 是單獨添加的,即使phpmyadmin/phpmyadmin:latest使用相同的 ENTRYPOINT 和 CMD 來查看是否可以解決它,盡管它不是必需的。 使用docker部署時,相同的 Docker 映像運行正常並在端口 8080 上偵聽。我做錯了什么嗎?
這是我用來部署的命令:
gcloud run deploy phpmyadmin --memory=1Gi --platform=managed \
--allow-unauthenticated --add-cloudsql-instances project_id:us-central1:db-name \
--region=us-central1 --image gcr.io/project_id/phpmyadmin:1.3 \
--update-env-vars PMA_HOST=localhost,PMA_SOCKET="/cloudsql/project_id:us-central1:db-name",PMA_ABSOLUTE_URI=phpmyadmin.domain.com
這就是我在日志中可以找到的全部內容。 (已經編輯了一些數據):
https://gist.github.com/shanukk27/9dd4b3076c55307bd6e853a76e7a34e0
Cloud Run 運行時環境似乎與 Docker 運行命令略有不同。 您不能同時使用 ENTRYPOINT 和 CMD
ENTRYPOINT [ "/docker-entrypoint.sh" ]
CMD [ "apache2-foreground" ]
它適用於 Docker Run(為什么?Docker 問題?Docker 功能?)而不是 Cloud Run(缺少功能?錯誤?)。
僅使用其中之一,例如:
ENTRYPOINT /docker-entrypoint.sh && apache2-foreground
編輯
Shanu 分享的一個奇怪的評論是 2 命令適用於 Wordpress 部署,在這里不起作用。
FROM wordpress:5.3.2-php7.3-apache
EXPOSE 8080
# Copy custom entrypoint from repo
COPY cloud-run-entrypoint.sh /usr/local/bin/
# Change apache listening port and set permission for docker entrypoint
RUN sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf && \
chmod +x /usr/local/bin/cloud-run-entrypoint.sh
# Wordpress conf
COPY wordpress/. /var/www/html/
# Custom entrypoint
ENTRYPOINT ["cloud-run-entrypoint.sh","docker-entrypoint.sh"]
# Start apache when docker container starts
CMD ["apache2-foreground"]
問題到這里就解決了,但是原因不清楚
Google 員工注意事項(Steren?Ahmet?) :您能否分享有關此行為的更多詳細信息?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.