【问题标题】:Assign domains to Docker container (Laravel)将域分配给 Docker 容器 (Laravel)
【发布时间】:2022-07-21 18:20:19
【问题描述】:

我有一个 Laravel 应用程序作为 Docker 容器运行。这是 docker-compose.yaml 文件

version: "3.7"

networks:
    wise-sso-network:
        driver: bridge

services:
    app:
        build:
            # args:
            #     user: root
            #     uid: 0
            context: ./
            dockerfile: Dockerfile
        image: laravel8-php-fpm-80
        container_name: wise-sso-app
        restart: unless-stopped
        working_dir: /var/www/html/wise.sso
        volumes:
            - ./:/var/www/html/wise.sso
        networks:
            - wise-sso-network

    db:
        image: mysql:5.7
        container_name: wise-sso-mysql
        restart: unless-stopped
        ports:
            - 3310:3306
        environment:
            MYSQL_DATABASE: ${DB_DATABASE}
            MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
            MYSQL_PASSWORD: ${DB_PASSWORD}
            MYSQL_USER: ${DB_USERNAME}
            SERVICE_TAGS: dev
            SERVICE_NAME: mysql
        volumes:
            # - ./docker-compose/mysql:/docker-entrypoint-initdb.d
            - wise-sso-datavolume:/var/lib/mysql
        networks:
            - wise-sso-network

    nginx:
        image: nginx:alpine
        container_name: wise-sso-nginx
        restart: unless-stopped
        ports:
            - "8097:80"
        volumes:
            - ./:/var/www/html/wise.sso
            - ./docker-compose/nginx:/etc/nginx/conf.d
        networks:
            - wise-sso-network

volumes:
    wise-sso-datavolume:

这是 nginx 配置文件

server {
    listen 80;
    server_name sso.wise-portal.com;
    index index.php index.html;
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/wise.sso/public;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
        gzip_static on;
    }
}

我已将子域添加到 /etc/hosts,我可以通过 http://localhost:8097 或 http://sso.wise-portal.com:8097 访问该站点。但是,我想从 URL 中删除端口并通过http://sso.wise-portal.com 直接访问它。

提前致谢!

【问题讨论】:

    标签: laravel docker nginx docker-compose containers


    【解决方案1】:

    只需在 docker-compose nginx 服务中将 8097 改为 80

    nginx:
            image: nginx:alpine
            container_name: wise-sso-nginx
            restart: unless-stopped
            ports:
                - "80:80"
    

    【讨论】:

      猜你喜欢
      • 2018-11-13
      • 2017-04-13
      • 1970-01-01
      • 2017-04-13
      • 2016-10-12
      • 2015-02-15
      • 2013-10-20
      • 1970-01-01
      相关资源
      最近更新 更多