在Azure上的Docker撰写文件上指定帐户凭据

时间:2019-12-19 04:14:01

标签: azure docker

我正在根据this tutorial之后的几张图片创建应用程序服务:

该示例的YML文件包含以下代码:

version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

问题是,我将容器映像放在Azure专用注册服务器上,并使用文件共享来装载卷,但找不到用于放置凭据的位置。

当我使用docker创建时,这是我在上例中使用的凭据丢失:

   --registry-login-server XXXXXX \
    --registry-password XXXXXX   \
    --registry-username XXXXXX \
    --azure-file-volume-account-name thisisjustatest \
    --azure-file-volume-account-key XXXXXX \
    --azure-file-volume-share-name XXXXXX 

在此other example中,一些凭据在以后的步骤中使用Web界面添加:

enter image description here

对于我的用例而言,这没有任何意义,因为该想法是使流程自动化,而不是添加更多手动步骤。

我还查看了CLI中的代码以创建应用程序:

https://docs.microsoft.com/en-us/cli/azure/webapp?view=azure-cli-latest#az-webapp-create

我没有看到用于发送帐户凭据的参数。

编辑:

这是我现在在docker compose文件上使用的代码:

2vecservice:
  image: coreintelligenceservices.azurecr.io/samples/word2vecservice
  container_name: "apibmongodb1"
  registry-login-server: coreintelligenceservices.azurecr.io
  registry-password: 6JZPjl3gx7JrIDaMT7r6y9gI/xBhFYXf
  registry-username: coreintelligenceservices
  ports:
    - "5000:5000"
  restart: always

我确实创建了该应用程序,但是它不起作用。

1 个答案:

答案 0 :(得分:0)

它是由Azure设计的,docker注册表的凭据设置在docker-compose文件中,如链接所示,它被设置为Azure Web App的环境变量。您可以看到说明here

如果使用docker-compose文件在门户中部署映像,则需要手动设置注册表凭据的环境变量。但是,当您参考引用使用Azure CLI命令var lastDay = DateTime.DaysInMonth(year, month); var lastDayDate = new DateTime(year, month, lastDay); 时,可以添加参数az webapp create--docker-registry-server-user,这可以在创建时为您设置注册表凭据。根据docker-compose文件中的图像,它将自动设置注册表服务器URL。

您还需要注意的另一件事是docker-compose中的所有映像都必须在同一注册表中。您可以看到限制here