Cómo comunicar entre dos recipientes acoplables (mssql y el núcleo .NET app)

votos
0

Tengo el siguiente problema: Tengo el siguiente archivo de composición del cargador de muelle

version: 3
services:
    web:
        build: .
        ports:
            - 8000:80
        links:
            - my-special-db
        networks:
            - demo-net
    my-special-db:
        image: microsoft/mssql-server-windows-developer
        ports:
            - 1433:1433
        environment:
            - ACCEPT_EULA=Y
            - sa_password=demo
        networks:
            - demo-net
networks:
        demo-net:
          driver: nat

En el appsettings.Docker.json Tengo la siguiente cadena de conexión: ConnectionStrings: { DefaultConnection: Servidor = mi-especial-db; Database = ContosoUniversity3; Trusted_Connection = true; MultipleActiveResultSets = true}

He intentado pasar también la contraseña, no funciona. Lo que estoy haciendo mal?

Publicado el 19/12/2018 a las 14:08
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Es necesario añadir ambos servicios en una red común.

Por favor redefinir este documento: Docker Redes

En cada uno de sus servicios:

  networks:
   - sql-net

En el final del archivo de redacción:

networks:
   sql-net:
     driver: bridge

Entonces serás capaz de conectarse a la base de datos a través de su nombre de contenedor, en su caso my-special-db

EDIT 1 - Controladores de red en Windows

El error ha informado el OP sugiere que se está ejecutando en Windows 10. Hay un error accesible al que aquí

Hay informes de que el uso de transparentconductor podría trabajar:

networks:
   sql-net:
     driver: transparent

EDIT 2 - Enlaces Opción

También puede tratar de usar el legado función Enlace . Esto, unido al webcontenedor:

web:
  links:
    - my-special-db
Respondida el 19/12/2018 a las 14:16
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more