我正在根据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界面添加:
对于我的用例而言,这没有任何意义,因为该想法是使流程自动化,而不是添加更多手动步骤。
我还查看了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
我确实创建了该应用程序,但是它不起作用。
答案 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。