У меня есть файл docker-compose.yml, в котором есть веб-сервер nginx, а затем я добавляю к нему изображение gitlabci.
мой docker-compose выглядит так
version: '3'
services:
#PHP Service
app:
build:
context: .
dockerfile: ./Dockerfile/Dockerfile
container_name: app
restart: unless-stopped
tty: true
environment:
SERVICE_NAME: app
SERVICE_TAGS: dev
working_dir: /var/www
volumes:
- ./laravel:/var/www
- ./Config/php/local.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- app-network
#Nginx Service
webserver:
image: nginx:alpine
container_name: webserver
restart: unless-stopped
tty: true
ports:
- "80:80"
# - "443:443"
volumes:
- ./laravel:/var/www
- ./Config/nginx/conf.d/:/etc/nginx/conf.d/
networks:
- app-network
database:
image: mariadb:latest
container_name: database
environment:
- "MYSQL_USERNAME=root"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "3306:3306"
networks:
- app-network
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
- "MYSQL_USERNAME=root"
- "MYSQL_ROOT_PASSWORD=secret"
- "PMA_HOST=database"
links:
- database
ports:
- "8080:80"
networks:
- app-network
gitlab:
image: gitlab/gitlab-ce:latest
hostname: gitlab.example.com
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['gitlab_shell_ssh_port'] = 8822
ports:
- "443:443"
- "8880:80"
- "8822:22"
volumes:
- gitlab-config:/etc/gitlab
- gitlab-data:/var/opt/gitlab
restart: always
#Docker Networks
networks:
app-network:
driver: bridge
#Volumes
volumes:
gitlab-data:
external: true
gitlab-config:
external: true
dbdata:
driver: local
я установленlaravel в порту 80, и я хочу использовать порт 8880 для gitlab. Я хочу открыть gitlab, например, gitlab.mydomain.com, и мой laravel откроется в главном адресе mydomain.com
, обратите внимание, что у меня уже есть веб-сервер nginx иУ gitlab есть собственный nginx для запроса дескриптора
как я могу смешать два nginx для достижения этой цели.
я использовал эту конфигурацию для службы nginx
server {
listen 80;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/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;
}
}
для обеда приложения laravel
я ожидал запустить приложение laravel на главном адресе www.mydomain.com и gitlab на gitlab.mydomain.com
я использовал все службы с докером