【问题标题】:Error when I try to deploy a nginx on docker-compose to MinIO当我尝试在 docker-compose 上将 nginx 部署到 MinIO 时出错
【发布时间】:2021-06-21 14:26:01
【问题描述】:

我正在尝试在 docker 桌面(Windows 版本)上创建一个容器。我的项目包含一些容器。

我需要创建一个容器来运行 MinIO 来模拟 S3 存储桶。我在官方上得到了docker-compose文件。

我的 docker-compose.yml 是这样的:

services:
    rabbitmq:
        image: rabbitmq:3-management
        container_name: rabbitmq
        restart: always
        ports: 
            - 5672:5672
            - 15672:15672
        volumes: 
            - ./dados:/var/lib/rabbitmq/
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=password
    minio1:
        image: minio/minio:RELEASE.2021-06-17T00-10-46Z
        hostname: minio1
        volumes:
            - ./dados/minios3/data1-1:/data1
            - ./dados/minios3/data1-2:/data2
        expose:
            - "9000"
        environment:
            MINIO_ROOT_USER: minio
            MINIO_ROOT_PASSWORD: minio123
        command: server http://minio{1...4}/data{1...2}
        healthcheck:
            test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
            interval: 30s
            timeout: 20s
            retries: 3
    nginx:
        image: nginx:1.19.2-alpine
        hostname: nginx
        volumes:
            - ./dados/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
        ports:
            - 9000:9000
        depends_on:
            - minio1

唯一的区别是我将卷路径更改为我的目录,脚本的其余部分来自官方文档。

当我运行docker-compose up -d 命令时,所有容器都被创建,除了 Nginx。显示错误。

Creating microservicos_nginx_1  ... error

ERROR: for microservicos_nginx_1  Cannot start service nginx: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "/run/desktop/mnt/host/d/Projetos Dev/Microservicos/dados/nginx/nginx.conf" to rootfs at "/var/lib/docker/overlay2/310cee7797b9810694b18473c914d21cdad5422d7c0945f06464163f67d605aa/merged/etc/nginx/nginx.conf" caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

ERROR: for nginx  Cannot start service nginx: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "/run/desktop/mnt/host/d/Projetos Dev/Microservicos/dados/nginx/nginx.conf" to rootfs at "/var/lib/docker/overlay2/310cee7797b9810694b18473c914d21cdad5422d7c0945f06464163f67d605aa/merged/etc/nginx/nginx.conf" caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type      
ERROR: Encountered errors while bringing up the project.

原来的docker-compose.yml是:

version: '3.7'
services:
  minio1:
    image: minio/minio:RELEASE.2021-06-17T00-10-46Z
    hostname: minio1
    volumes:
      - data1-1:/data1
      - data1-2:/data2
    expose:
      - "9000"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio2:
    image: minio/minio:RELEASE.2021-06-17T00-10-46Z
    hostname: minio2
    volumes:
      - data2-1:/data1
      - data2-2:/data2
    expose:
      - "9000"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio3:
    image: minio/minio:RELEASE.2021-06-17T00-10-46Z
    hostname: minio3
    volumes:
      - data3-1:/data1
      - data3-2:/data2
    expose:
      - "9000"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  minio4:
    image: minio/minio:RELEASE.2021-06-17T00-10-46Z
    hostname: minio4
    volumes:
      - data4-1:/data1
      - data4-2:/data2
    expose:
      - "9000"
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    command: server http://minio{1...4}/data{1...2}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  nginx:
    image: nginx:1.19.2-alpine
    hostname: nginx
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - "9000:9000"
    depends_on:
      - minio1
      - minio2
      - minio3
      - minio4

有人知道为什么会发生这个错误以及如何解决它吗?

【问题讨论】:

    标签: nginx docker-compose minio


    【解决方案1】:

    您不需要添加 Nginx 文件名:nginx.conf。只需使用路径即可:

    修改这个:

            - ./dados/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    

            - ./dados/nginx/:/etc/nginx/
    

    并确保两条路径都正确:

    • ./dados/nginx/
    • /etc/nginx/

    这是我的,没有错误,请注意 volumes 部分(IT IS NOT FOR MINIO

    webserver:
        depends_on:
            - wordpress
        image: nginx:1.18.0-alpine
        container_name: webserver
        restart: unless-stopped
        ports:
            - "80:80"
        volumes:
            - ./html:/var/www/html
            - ./nginx:/etc/nginx/conf.d
        networks:
            - wp-network
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2014-10-09
      • 2014-07-06
      • 2012-08-08
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      相关资源
      最近更新 更多