azure - 使用 Docker compose 在 Azure 上部署多容器实例时遇到问题
问题描述
docker compose-up
本地能够构建和启动服务,但是在执行相同操作时Azure Container Instances
出现以下错误
containerinstance.ContainerGroupsClient#CreateOrUpdate:发送请求失败:StatusCode=400 -- 原始错误:Code="InaccessibleImage" Message="无法访问容器组 'djangodeploy' 中的图像 'docker/aci-hostnames-sidecar:1.0'。请检查映像和注册表凭据。”
另外,这张图的目的是什么docker/aci-hostnames-sidecar
ACI 部署工作正常,但现在突然不再工作了
内容docker-compose.yml
如下
version: '3.7'
services:
django-gunicorn:
image: oasisdatacr.azurecr.io/oasis_django:latest
env_file:
- .env
build:
context: .
command: >
sh -c "
python3 manage.py makemigrations &&
python3 manage.py migrate &&
python3 manage.py wait_for_db &&
python3 manage.py runserver 0:8000"
ports:
- "8000:8000"
celery-worker:
image: oasisdatacr.azurecr.io/oasis_django_celery_worker:latest
restart: always
build:
context: .
command: celery -A oasis worker -l INFO
env_file:
- .env
depends_on:
- django-gunicorn
celery-beat:
image: oasisdatacr.azurecr.io/oasis_django_celery_beat:latest
build:
context: .
command: celery -A oasis beat -l INFO
env_file:
- .env
depends_on:
- django-gunicorn
- celery-worker
更新Azure 端可能存在一些问题,因为我能够像往常一样部署容器而无需任何更改
解决方案
使用 docker-compose 部署多个容器到 ACI 时,首先需要在本地构建镜像,然后需要通过命令将镜像推送到 ACR docker-compose push
,当然需要先登录 ACR . 请参阅此处的示例。
如果您已经将图像推送到您的 ACR,那么您需要确保您是否使用正确的凭据登录到您的 ACR,并且带有标签的图像名称是绝对正确的。
推荐阅读
- java - 如何获取名称以“ab”开头的文档
- python - “删除未使用的导入”的示例在 python 中可能会产生不良的副作用?
- c++ - 我想知道像素/片段的原始模板值。是零还是一?如果可能的话,得到什么具体的动作来修改模板值?
- r - 如何像我们在 MS excel 中一样计算 R 中的 percentile.exe
- javascript - 这个语法 html`...` 是什么?
- python - 访问列表中的字符串
- omnet++ - 遵循 Veins 教程时出现错误“无法启动 SUMO”
- c# - 来自 MemoryStream 的 fo-dicom JPEG 图像压缩
- c# - 如何测试 SCIM 端点
- c - 有没有办法在 C 中同时运行两个程序并记录输出