对于nginx容器,docker-compose up失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对于nginx容器,docker-compose up失败相关的知识,希望对你有一定的参考价值。

当我运行docker-compose时,我收到以下错误:

backend_1_a5b5a2caf6fc | 2019/04/28 21:40:49 [emerg] 1#1: no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/conf.d/default.conf:4
backend_1_a5b5a2caf6fc | nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/conf.d/default.conf:4
...
...
production_backend_1_a5b5a2caf6fc exited with code 1

这是我的nginx的Dockerfile:

FROM nginx

COPY nginx.conf /etc/nginx/conf.d/default.conf

default.conf:

fastcgi_cache_path /dev/shm levels=1:2 keys_zone=laravel:100m;
fastcgi_cache_key "$scheme$request_method$host$request_uri$query_string";

server {
   listen 80 default_server;

   root   /var/www/public;
   index  index.php index.html;

   client_max_body_size 5M;

 ...
 ...

码头工人,compose.yml:

version: '3'

services:

  backend:
    build: ./nginx
    depends_on:
    - db
    - redis
    working_dir: /var/www
    volumes:
      - ../../src:/var/www
    ports:
      - 80:80
...
...
答案

这意味着您没有正确设置ssl(您缺少服务器证书)。由于你已经在docker-compose中映射了端口80而不是443,我假设你不打算使用SSL。

只需删除nginx.conf中的以下行以禁用ssl:

listen 443 ssl http2;

一定要重建并重新启动你的nginx容器。

另一答案

你有没有其他服务器在端口443上侦听。尝试从/ etc / nginx / sites-enabled中删除所有符号链接,除了你想要工作的这个服务器

以上是关于对于nginx容器,docker-compose up失败的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose容器互相连接

docker之docker-compose——容器管理

docker-compose命令及yaml文件

无法使用nginx-proxy和dnsmasq在带有docker-compose的容器之间访问虚拟主机

从 docker-compose 替换 NGINX 配置中的环境变量

PHP 扩展对 docker-compose 中的 composer 容器不可用