Estoy tratando de alojar una aplicación de contenedor múltiple (web api + postgres db) en azure usando el registro de contenedor azure como fuente de imagen.
Este es el archivo de composición de la ventana acoplable que estoy usando:
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 Seguí este artículo para desarrollar esta aplicación y todo salió bien en el entorno local. Parece que la sección de volumes no es adecuada en el archivo docker-compose. Intenté reemplazar . con WEBAPP_STORAGE_HOME y aún así se ignoran los scripts iniciales, parece de los registros de Azure Container:
Microsoft.EntityFrameworkCore.Database.Command[20102] 2019-06-18T07:00:20.279183157Z Error al ejecutar DbCommand (41ms) [Parámetros=[], CommandType='Text', CommandTimeout='30'] 2019-06-18T07: 00:20.279189958Z SELECCIONE b.id, b.título, b.descripción 2019-06-18T07:00:20.279193958Z DEL blog COMO b 2019-06-18T07:00:20.298436041Z DONDE STRPOS(b.título, 'Título' ) > 0 2019-06-18T07:00:20.298452842Z Npgsql.PostgresException (0x80004005): 42P01: la relación "blog" no existe 2019-06-18T07:00:20.298457842Z en Npgsql.NpgsqlConnector.1<g6__ReadMeLong.ClassageLong.Class0__ |0>d.MoveNext() 2019-06-18T07:00:20.298462242Z --- Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción --- 2019-06-18T07:00:20.298466242Z en Npgsql.NpgsqlConnector. <>c__DisplayClass161_0.<g__ReadMessageLong|0>d.MoveNext() 2019-06-18T07:00:20.298478543Z --- Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción --- 2019-06-18T07:00:20.298482943 Z en Npgsql.NpgsqlDataReader.NextResult(booleano asíncrono, booleano isConsuming) 2019-06-18T07:00:20.298486743Z en Npgsql.NpgsqlDataReader.NextResult() 2019-06-18T07:00:20.298490643Z
en NPGSQL.NPGSQLCOMMAND.EXECURYBDATAREADER (Comportamiento de Commandbehavior, Boolean Async, CancelationToken CancellationToken: 00: 20.298494543Z en npgsql.npgsqlcommand.executedbdatareader (Compuerta de comandbehavior) 2019-06-18t07: 00: 20.298498343z en System.Data .Common.DbCommand.ExecuteReader() 2019-06-18T07:00:20.298502143Z en Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(conexión IRelationalConnection, método de ejecución DbCommandMethod, valores de parámetro IReadOnlyDictionary`2)
¿Es la forma correcta de agregar volúmenes de datos en Azure?
Para agregar un volumen de datos para la aplicación web para contenedor en Azure, debe montar la ruta en el volumen de esta manera:
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 Y luego configure la variable de entorno WEBSITES_ENABLE_APP_SERVICE_STORAGE como True . Recuerde, solo agrega el volumen persistente. Por lo tanto, debe copiar el archivo seed.sql en la ruta a través de FTP/FTPS. Para obtener más detalles, consulte Agregar almacenamiento persistente .