Docker部署Angular+Nginx容器持续重启问题求助
Docker运行Angular应用容器持续重启问题排查与解决
第一步:查看容器启动日志
先通过日志定位具体错误原因:
docker logs web # 或使用docker-compose命令 docker-compose logs web
第二步:修复Nginx根目录配置错误
你的Dockerfile已将Angular构建产物复制到容器内的/usr/share/nginx/html,但nginx.conf中设置的root路径为/home/ubuntu/htdocs——该目录在容器中不存在,导致Nginx无法加载静态资源启动失败。
修改nginx.conf中的root配置:
server { listen 443 ssl default_server; listen [::]:443 ssl default_server; # 替换为容器内的正确路径 root /usr/share/nginx/html; # 其余配置保持不变 gzip on; gzip_min_length 1000; ... }
第三步:修复SSL证书路径不匹配问题
docker-compose中将宿主机/etc/ssl/2023挂载到容器的/etc/nginx/certs,但nginx.conf里的证书路径指向/etc/nginx/ssl_certificate.crt和/etc/nginx/private.key,容器内无法找到这些文件,触发Nginx启动失败。
可选两种修复方案:
方案1:修改nginx.conf中的证书路径
假设宿主机/etc/ssl/2023下的证书文件名为ssl_certificate.crt和private.key,调整路径:
ssl_certificate /etc/nginx/certs/ssl_certificate.crt; ssl_certificate_key /etc/nginx/certs/private.key;
方案2:调整docker-compose挂载路径
若不想修改nginx.conf,直接将宿主机证书目录挂载到nginx期望的路径:
volumes: - /etc/ssl/2023:/etc/nginx/
第四步:重新构建启动容器
完成配置修改后,重新执行启动命令:
sudo docker-compose up -d --force-recreate --no-deps --build web
内容的提问来源于stack exchange,提问作者Sucheep Sriintra
相关产品推荐
相关产品推荐

