我有一个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 conf文件
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/host中,并且我可以通过http://localhost:8097或http://sso.wise-portal.com:8097访问站点。但是,我想从URL中删除端口,并通过http://sso.wise-portal.com直接访问它。
我想补充一点,因为我有多个容器,所以我不能默认端口为80。
提前感谢!
发布于 2022-07-21 10:20:19
只需更改8097到80在码头-组成nginx服务
nginx:
image: nginx:alpine
container_name: wise-sso-nginx
restart: unless-stopped
ports:
- "80:80"
https://stackoverflow.com/questions/73064326
复制相似问题