我正在尝试使用azure容器注册表作为图像源在azure中托管多容器应用(web api + postgres db)。
这是我正在使用的docker compose文件:
version: '3.4'
services:
dockerapi:
image: test.azurecr.io/pgdemo:1
ports:
- "1985:80"
postgresimage:
image: postgres
ports:
- "5432"
environment:
POSTGRES_USER: "bloguser"
POSTGRES_PASSWORD: "bloguser"
POSTGRES_DB: "blogdb"
volumes:
- $./dbscripts/seed.sql :/docker-entrypoint-initdb.d/seed.sql
- db-data:/var/lib/postgresql/data
volumes:
db-data:
driver: local
我跟随this article开发了此应用程序,并且在本地环境中一切正常。似乎volumes
节在docker-compose文件中不合适。我尝试将.
替换为WEBAPP_STORAGE_HOME
,但仍然看不到种子脚本,从蔚蓝的容器日志看来:
Microsoft.EntityFrameworkCore.Database.Command [20102] 2019-06-18T07:00:20.279183157Z执行DbCommand失败(41ms) [Parameters = [],CommandType ='Text',CommandTimeout = '30'] 2019-06-18T07:00:20.279189958Z SELECT b.id,b.title, b.description 2019-06-18T07:00:20.279193958Z来自博客AS b 2019-06-18T07:00:20.298436041Z WHERE STRPOS(b.title,'Title')> 0 2019-06-18T07:00:20.298452842Z Npgsql.PostgresException (0x80004005):42P01:关系“博客”不存在 2019-06-18T07:00:20.298457842Z在 Npgsql.NpgsqlConnector。<> c__DisplayClass161_0。
d.MoveNext() 2019-06-18T07:00:20.298462242Z-前一个堆栈跟踪结束 引发异常的位置--- 2019-06-18T07:00:20.298466242Z 在 Npgsql.NpgsqlConnector。<> c__DisplayClass161_0。 d.MoveNext() 2019-06-18T07:00:20.298478543Z ---上一个的堆栈跟踪结束 引发异常的位置--- 2019-06-18T07:00:20.298482943Z 在Npgsql.NpgsqlDataReader.NextResult(布尔异步,布尔 isConsuming)2019-06-18T07:00:20.298486743Z在 Npgsql.NpgsqlDataReader.NextResult()2019-06-18T07:00:20.298490643Z
在Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior行为, 布尔异步,CancellationToken取消(Token) 2019-06-18T07:00:20.298494543Z在 Npgsql.NpgsqlCommand.ExecuteDbDataReader(CommandBehavior行为) 2019-06-18T07:00:20.298498343Z在 System.Data.Common.DbCommand.ExecuteReader() 2019-06-18T07:00:20.298502143Z在 Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection 连接,DbCommandMethod executeMethod,IReadOnlyDictionary`2 parameterValues)
以天蓝色添加数据量是否正确?
答案 0 :(得分:1)
要为Azure中的容器的Web应用程序添加数据量,您需要像这样在卷中安装路径:
ERROR: transport error 202: bind failed: Permission denied
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:741]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
然后将环境变量version: '3.4'
services:
dockerapi:
image: test.azurecr.io/pgdemo:1
ports:
- "1985:80"
postgresimage:
image: postgres
ports:
- "5432"
environment:
POSTGRES_USER: "bloguser"
POSTGRES_PASSWORD: "bloguser"
POSTGRES_DB: "blogdb"
volumes:
- ${WEBAPP_STORAGE_HOME}/dbscripts:/docker-entrypoint-initdb.d
- db-data:/var/lib/postgresql/data
volumes:
db-data:
driver: local
设置为WEBSITES_ENABLE_APP_SERVICE_STORAGE
。记住,它只是增加了持久性。因此,您需要将文件seed.sql复制到通过FTP / FTPS的路径。有关更多详细信息,请参见Add persistent storage。