尝试在 AWS 上启动时 docker-compose 返回错误

Том*_*раћ 0 nginx amazon-web-services docker docker-compose

我想将我的服务器部署到 AWS EC2 实例。当我在 ssh 控制台中输入“sudo docker-compose up”时,出现以下错误:

错误:对于 nginx 无法启动服务 nginx:OCI 运行时创建失败:container_linux.go:345: 启动容器进程导致“process_linux.go:430: 容器初始化导致 \"rootfs_linux.go:58: 挂载 \\"/home/ubuntu /site/nginx/default.conf\\“到rootfs \\”/var/lib/docker/overlay2/b24f64910c6ab7727a4cb08afac0d034bb759baa4bfd605466ca760359f411c2/merged\\“在\\”/var/lib/docker/overlay2/b24f64910c6ab7727a4 cb08afac0d034bb759baa4bfd605466ca760359f411c2/合并/etc/ nginx/conf.d/default.conf\\" 导致 \\"不是目录\\"\"": 未知:您是否尝试将目录挂载到文件上(或反之亦然)?检查指定的主机路径是否存在并且是预期的类型

这是我的 docker-compose.yml 文件:

version: '2'

networks:
    SRVR:

services:
    nginx:
        image: nginx:stable-alpine
        container_name: SRVR_nginx
        ports:
            - "8080:80"
        volumes:
            - ./code:/code
            - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
            - ./nginx/logs:/var/log/nginx
        depends_on:
            - php
        networks:
            - SRVR

    php:
        build: ./php
        container_name: SRVR_php
        volumes:
            - ./code:/code
        ports:
            - "9000:9000"
        networks:
            - SRVR
Run Code Online (Sandbox Code Playgroud)

相同的 docker-compose.yml 在运行 Ubuntu 操作系统的本地计算机上运行良好。EC2 实例还运行 Ubuntu 操作系统。

Ali*_*ouk 5

你的问题在于./nginx/default.conf. docker 将其识别为文件夹,而您则将其识别/etc/nginx/conf.d/default.conf为文件。