首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该用什么数据库主机名来处理ASP.NET应用程序?

问我应该用什么数据库主机名来处理ASP.NET应用程序?
EN

Stack Overflow用户
提问于 2019-06-27 02:41:59
回答 1查看 85关注 0票数 0

我正在尝试使用Visual设置一个ASP.NET项目(基于这教程),并且需要为web应用程序和Server数据库运行Docker容器。

使用下面的docker-compose.yaml,两个容器成功运行,我可以在http://localhost:5000上加载web应用程序登陆页面

代码语言:javascript
复制
version: '3.4'

services:
  razorpagesmovie:
    image: ${DOCKER_REGISTRY-}razorpagesmovie
    build:
      context: .
      dockerfile: RazorPagesMovie/Dockerfile
    ports:
      - "5000:5000"
    depends_on:
      - mssql

  mssql:
    image: microsoft/mssql-server-linux
    ports:
      - "1433:1433"
    environment:
      SA_PASSWORD: "L0ngpassword"
      ACCEPT_EULA: "Y"

appsettings.json中的连接字符串是

代码语言:javascript
复制
Server=<host>,1433;Database=Movies;User=sa;Password=L0ngpassword;

但是,我不知道主机名使用什么值:

  1. 如果我硬编码机器的IP地址,那么在本地shell上执行的web应用程序和dotnet ef database ...调用都可以连接到数据库,直到我的IP更改为止。
  2. 如果我使用localhost,那么只有在本地shell上执行的dotnet ef database ...命令才能连接到数据库。
  3. 如果我使用mssql,那么只有web应用程序容器才能连接到数据库。

有比硬编码我的IP更健壮的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-06-27 06:34:29

假设您的appsettings.json文件具有json键ConnectionString。

可以将连接字符串的环境变量添加到该容器中。使用DB_IP或放置DB容器的服务名称mssql。

代码语言:javascript
复制
version: '3.4'

services:
  razorpagesmovie:
    image: ${DOCKER_REGISTRY-}razorpagesmovie
    build:
      context: .
      dockerfile: RazorPagesMovie/Dockerfile
    ports:
      - "5000:5000"
    environment:
      - ConnectionString=${DB_IP:-Server=mssql;Database=Movies;User=sa;Password=L0ngpassword} 
    depends_on:
      - mssql

  mssql:
    image: microsoft/mssql-server-linux
    ports:
      - "1433:1433"
    environment:
      SA_PASSWORD: "L0ngpassword"
      ACCEPT_EULA: "Y"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56783193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档