如何为docker nginx指定站点文件夹?



当我从项目根(/var/www/buyer_main)启动docker-compose up -d时,nginx开始在本地主机上服务,所以我可以看到"欢迎使用nginx!"浏览器中的消息。但是id不使用项目根来服务。浏览器中没有看到/public/index。php。我应该在哪里指定路径到nginx配置或根文件夹在docker环境?这是我的码头作曲。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

如果你不覆盖默认的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

看到一个工作示例。

最新更新