【问题标题】:How to specify site folder for docker nginx?如何为 docker nginx 指定站点文件夹?
【发布时间】:2021-05-23 09:26:27
【问题描述】:

当我从项目根目录 (/var/www/buyer_main) 启动 docker-compose up -d 时,nginx 开始在 localhost 上服务,所以我可以看到“欢迎使用 nginx!”浏览器中的消息。但是 id 不使用项目根来提供服务。所以我看不到 /public/index.php 在浏览器中运行。我应该在哪里指定 nginx 配置或 docker 环境中的根文件夹的路径?这是我的 docker-compose.yml 文件:


# For more information: https://laravel.com/docs/sail
version: '3'
services:
    pgsql:
        image: postgres:13
        ports:
            - '${FORWARD_DB_PORT:-5432}:5432'
        environment:
            PGPASSWORD: 'postgres'
            POSTGRES_DB: 'postgres'
            POSTGRES_USER: 'postgres'
            POSTGRES_PASSWORD: 'postgres'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}"]
        volumes:
            - 'sailpostgresql:/var/lib/postgresql/data'
    redis:
        image: 'redis:alpine'
        ports:
            - '${FORWARD_REDIS_PORT:-6379}:6379'
        volumes:
            - 'sailredis:/data'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "redis-cli", "ping"]
    mailhog:
        image: 'mailhog/mailhog:latest'
        ports:
            - '${FORWARD_MAILHOG_PORT:-1025}:1025'
            - '${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025'
        networks:
            - sail

    webserver:
      image: nginx:alpine
      container_name: webserver
      restart: unless-stopped
      tty: true
      ports:
        - "80:80"
        - "443:443"
      networks:
        - sail
      volumes:
        - '.:/var/www/buyer_main'
    app:
      build:
        context: .
        dockerfile: Dockerfile
      image: digitalocean.com/php
      container_name: app
      restart: unless-stopped
      tty: true
      environment:
        SERVICE_NAME: app
        SERVICE_TAGS: dev
      working_dir: /var/www
      volumes:
        - ./:/var/www
        - ./php/local.ini:/usr/local/etc/php/conf.d/local.ini
      networks:
        - sail
networks:
    sail:
        driver: bridge
volumes:
    sailmysql:
        driver: local
    sailpostgresql:
        driver: local
    sailredis:
        driver: local
    webserver:
      driver: local

【问题讨论】:

    标签: docker nginx docker-compose dockerfile


    【解决方案1】:

    如果您不覆盖默认的 nginx 配置文件,这是预期的。
    您可以在 docker-compose 中执行此操作:

    nginx:
      image: mynginx:latest
      container_name: nginx
      restart: always
      volumes:
        - ./my-nginx.conf:/etc/nginx/nginx.conf
    

    然后你需要在新文件my-nginx.conf中提供nginx的配置

     server {
       index index.php index.html;
       root /app/;
    
       listen              80;
       server_name         localhost;
    

    您可以在https://github.com/Adiii717/dockerize-nginx-php 看到一个工作示例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 2015-11-22
      • 2019-07-27
      相关资源
      最近更新 更多