Как настроить запуск Yii2 advanced шаблона в докере с использованием доменных имен?

Как изменить конфигурацию Docker Compose и настроить доменные имена для приложений frontend и backend Yii2 шаблона advanced так, чтобы обращаться к приложениям по более понятным доменам без указания портов?
  • 11 июня 2024 г. 7:01
Ответы на вопрос 2
Для настройки запуска Yii2 advanced шаблона в докере с использованием доменных имен, следуйте приведенным ниже шагам:

1. Измените конфигурацию Docker Compose для создания сети для ваших контейнеров. В вашем файле docker-compose.yml добавьте следующий раздел:

```yaml
networks:
  app_net:
    driver: bridge
```

2. Добавьте ваши приложения frontend и backend в секцию services вашего файла docker-compose.yml:

```yaml
frontend:
  image: yii2-frontend
  networks:
    - app_net
  ports:
    - "80:80"
  ...
  
backend:
  image: yii2-backend
  networks:
    - app_net
  ports:
    - "81:80"
  ...
```

3. Создайте файл nginx.conf для каждого приложения (frontend и backend) с конфигурацией сервера, указывающей на соответствующий root и доменное имя. Пример конфигурации для frontend приложения:

```nginx
server {
    listen 80;
    server_name frontend.local;
    
    root /app/frontend/web;
    
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass php:9000; # контейнер php-fpm
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
```

4. Измените файл hosts вашей операционной системы, добавив записи для ваших доменных имен:

```
127.0.0.1 frontend.local
127.0.0.1 backend.local
```

5. Перезапустите контейнеры Docker с помощью команды docker-compose up -d.

Теперь вы можете обращаться к вашим приложениям по доменным именам frontend.local и backend.local без указания портов.
такие задачи решаются установкой реверс-прокси, например nginx или traefik
Похожие вопросы