Я новичок в Azure, и это мой первый вопрос в StackOverflow. У меня проблема с развертыванием новой службы приложений Azure с помощью Multi-Container Docker (Linux) с помощью Docker Compose. К сожалению, я не могу получить доступ к своему журналу приложений, потому что есть неизвестные ошибки. Я изменяю только конфигурацию, чтобы использовать свой личный реестр и конфигурацию docker-compose
, остальные параметры остаются по умолчанию. Я использую план Azure для студентов, поэтому выбор поддержки экспертов 1: 1 невозможен.
Мои сервисы приложений в основном состоят из 4 контейнеров: webservice
(Django REST Framework), comprof
(VueJS), raspisample
(Express) и db
(PostgreSQL). Я использую реестр Docker GitLab (registry.gitlab.com), и это частный реестр (изображения не доступны публично). Вот мой файл docker-compose.yml
.
version: '3'
services:
webservice:
image: registry.gitlab.com/something/webservice:latest
restart: always
working_dir: /opt/webservice
environment:
- DEBUG=false
- DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres
- PREDICTOR_URL=https://something-predictor.azurewebsites.net
- CACHE_DIR=/var/cache
- SECRET_KEY="**omitted**"
- LOG_DIR=/var/log/webservice
- UPLOADS_DIR=/var/uploads
- ACCESS_LOG=/var/log/webservice/access_main.log
- ERROR_LOG=/var/log/webservice/error_main.log
ports:
- "81:80"
volumes:
- webservice_data:/var/log/webservice
- webservice_data:/var/cache
- webservice_data:/var/uploads
depends_on:
- db
networks:
internal:
comprof:
image: registry.gitlab.com/something/company-profile:latest
restart: always
working_dir: /opt/comprof
environment:
- WEBSERVICE_URL=http://webservice:81
- RASPI_SAMPLE_URL=http://raspisample:82
- PREDICTOR_URL=https://something-predictor.azurewebsites.net
- ACCESS_LOG=/var/log/comprof/access_main.log
- ERROR_LOG=/var/log/comprof/error_main.log
ports:
- "80:80"
- "443:443"
volumes:
- comprof_data:/var/log/comprof
depends_on:
- webservice
networks:
default:
internal:
raspisample:
image: registry.gitlab.com/something/local-webservice:latest
restart: always
working_dir: /opt/sample
environment:
- WEBSERVICE_URL=http://webservice
- ACCESS_LOG=/var/log/raspi/access_main.log
- ERROR_LOG=/var/log/raspi/error_main.log
ports:
- "82:3000"
volumes:
- raspisample_data:/var/log/raspi
networks:
internal:
db:
image: postgres
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
volumes:
- db_data:/var/lib/postgresql/data
networks:
internal:
networks:
default:
internal:
internal: true
volumes:
webservice_data:
raspisample_data:
comprof_data:
db_data:
Эта конфигурация docker-compose
не работает только в моих службах приложений Azure. У меня есть другая виртуальная машина в моем колледже, и эта конфигурация прекрасно работает там. Я также попробовал на своем ноутбуке, и он также работает нормально. В Azure вот сообщение об ошибке:
:( Application Error
If you are the application administrator, you can access the diagnostic resources.
Сообщение об ошибке Azure (изображение)
Когда я пытаюсь устранить эту проблему в настройках приложения> Настройки контейнера> Журналы, это показывает мне одну ошибку строки:
Error in retrieving logs.
Я также получил ту же ошибку при доступе к журналу через потоки журналов. Я включил ведение журнала приложений в меню журналов службы приложений, но это никак не влияет. Я также не могу получить доступ к рекомендованной ссылке Azure на журналы Docker, она просто загружается вечно и возвращает ошибку времени ожидания подключения после 15 минут загрузки.
Вопрос: что-то не так с моим docker-compose.yml
? Или что-то не так с настройками моей службы приложений Azure? Спасибо.