微服务和.NET Docker配置文件

使用 .NET 生成第一个微服务

什么是微服务?

什么是微服务? - Learn | Microsoft Docs

为微服务生成 Dockerfile

练习 - 为微服务生成 Dockerfile - Learn | Microsoft Docs

输入以下代码

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY backend.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app
  1. 这将在调用时按顺序执行以下步骤:

    • 拉取 mcr.microsoft.com/dotnet/sdk:6.0 映像并将其命名为 build
    • 将映像中的工作目录设置为 /src
    • 将在本地找到的名为 backend.csproj 的文件复制到刚创建的 /src 目录中
    • 在项目中调用 dotnet restore
    • 将本地工作目录中的所有内容复制到映像中
    • 在项目中调用 dotnet publish
  2. 现在,在最后一行的正下方输入以下内容:

FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY --from=build /app .
ENTRYPOINT ["dotnet", "backend.dll"]
  1. 这将在调用时按顺序执行以下步骤:

    • 拉取 mcr.microsoft.com/dotnet/aspnet:6.0 映像
    • 将映像中的工作目录设置为 /app
    • 公开端口 80 和 443
    • 将上面创建的 build 映像的 /app 目录中的所有内容复制到此映像的应用目录中
    • 将此映像的入口点设置为 dotnet,并将 backend.dll 作为参数传递
  2. 保存 Dockerfile,打开命令提示符,然后导航到保存该文件的目录。

  3. 运行此命令以创建映像,并使用名称 pizzabackend 标记映像:

docker build -t pizzabackend .
  1. 这将运行当前目录中 Dockerfile 中的命令,并将标记 pizzabackend 应用于生成的映像。

     提示

    如果 Docker 中提示错误,则可能是未正确安装。 运行以下命令验证:docker run hello-world 如果未在输出中看到“Hello from Docker!”,请按照此 Docker 安装教程进行操作。

  2. 大量输出后,将生成映像。 键入 docker images 将显示计算机上所有映像的列表,其中将列出 pizzabackend

  3. 若要运行 Web API 服务,请运行以下命令以使用 pizzabackend 映像启动新的 Docker 容器,并在端口 5200 上公开该服务:

docker run -it --rm -p 5200:80 --name pizzabackendcontainer pizzabackend

可以浏览到 http://localhost:5200/pizzainfo 并查看

创建 Docker Compose 文件

练习 - 创建 Docker Compose 文件 - Learn | Microsoft Docs

将以下代码添加到 docker-compose.yml 文件:

version: '3.4'

services: 

  frontend:
    image: pizzafrontend
    build:
      context: frontend
      dockerfile: Dockerfile
    environment: 
      - backendUrl=http://backend
    ports:
      - "5902:80"
    depends_on: 
      - backend
  backend:
    image: pizzabackend
    build: 
      context: backend
      dockerfile: Dockerfile
    ports: 
      - "5000:80"
  1. 此代码执行几项操作:

    • 首先,它会创建前端网站,将其命名为 pizza frontend。 该代码指示 Docker 生成该网站,并指向在“前端”文件夹中找到的 Dockerfile。 然后代码会为网站设置环境变量:backendUrl=http://backend。 最后,此代码会打开一个端口,并声明它依赖于后端服务。
    • 接下来将创建后端服务。 它被命名为 pizzabackend。 它是通过你在上一个练习中创建的同一 Dockerfile 构建的。 最后一个命令指定要打开的端口。
  2. 若要生成容器映像,请打开命令提示符,并导航至 docker-compose.yml 文件所在的目录,然后运行以下命令:

    docker-compose build
    
  3. 接着,若要启动网站和 Web API,请运行以下命令:

    docker-compose up
    
  4. 可以浏览到 http://localhost:5902 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要启动MySQL和Redis,您可以使用DockerDocker Compose来进行容器编排。首先,您需要创建一个docker-compose.yml文件,并在其中定义MySQL和Redis的服务配置。 在docker-compose.yml文件中,您可以指定MySQL和Redis的容器镜像、端口映射、环境变量等配置。例如,以下是一个示例的docker-compose.yml文件: ``` version: '3' services: mysql: image: mysql:latest ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - ./mysql/data:/var/lib/mysql redis: image: redis:latest ports: - 6379:6379 volumes: - ./redis/data:/data ``` 在该示例中,我们使用了MySQL和Redis的最新官方镜像,并将它们分别映射到宿主机的3306和6379端口。同时,我们还指定了MySQL的root密码,并通过卷将MySQL和Redis的数据持久化到宿主机的目录中。 接下来,您可以使用以下命令来启动MySQL和Redis容器: ``` docker-compose up -d ``` 该命令将会在后台启动MySQL和Redis容器。您可以使用如下命令来查看容器的状态: ``` docker-compose ps ``` 如果一切正常,您将会看到MySQL和Redis容器处于运行状态。 通过以上步骤,您就成功地使用Docker启动了MySQL和Redis容器。现在,您可以通过相应的客户端工具连接到MySQL和Redis,并开始使用它们了。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [微服务项目容器编排docker-compose.yml、Dockerfile文件模板、相关配置文件、shell脚本](https://download.csdn.net/download/qq_45629145/88248761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [docker-compose启动mysql、redis服务](https://download.csdn.net/download/weixin_38622611/14037590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值