什么是微服务?
的
什么是微服务? - 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
- 这将在调用时按顺序执行以下步骤:
- 拉取
mcr.microsoft.com/dotnet/sdk:6.0
映像并将其命名为build
- 将映像中的工作目录设置为
/src
- 将在本地找到的名为 backend.csproj 的文件复制到刚创建的
/src
目录中 - 在项目中调用
dotnet restore
- 将本地工作目录中的所有内容复制到映像中
- 在项目中调用
dotnet publish
- 现在,在最后一行的正下方输入以下内容:
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY --from=build /app .
ENTRYPOINT ["dotnet", "backend.dll"]
- 这将在调用时按顺序执行以下步骤:
- 拉取
mcr.microsoft.com/dotnet/aspnet:6.0
映像 - 将映像中的工作目录设置为
/app
- 公开端口 80 和 443
- 将上面创建的 build 映像的
/app
目录中的所有内容复制到此映像的应用目录中 - 将此映像的入口点设置为
dotnet
,并将backend.dll
作为参数传递
- 保存 Dockerfile,打开命令提示符,然后导航到保存该文件的目录。
- 运行此命令以创建映像,并使用名称 pizzabackend 标记映像:
docker build -t pizzabackend .
- 这将运行当前目录中
Dockerfile
中的命令,并将标记pizzabackend
应用于生成的映像。
提示
如果 Docker 中提示错误,则可能是未正确安装。 运行以下命令验证:docker run hello-world
如果未在输出中看到“Hello from Docker!”,请按照此 Docker 安装教程进行操作。 - 大量输出后,将生成映像。 键入
docker images
将显示计算机上所有映像的列表,其中将列出pizzabackend
。 - 若要运行 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"
- 此代码执行几项操作:
- 首先,它会创建前端网站,将其命名为 pizza frontend。 该代码指示 Docker 生成该网站,并指向在“前端”文件夹中找到的 Dockerfile。 然后代码会为网站设置环境变量:
backendUrl=http://backend
。 最后,此代码会打开一个端口,并声明它依赖于后端服务。 - 接下来将创建后端服务。 它被命名为 pizzabackend。 它是通过你在上一个练习中创建的同一 Dockerfile 构建的。 最后一个命令指定要打开的端口。
- 若要生成容器映像,请打开命令提示符,并导航至 docker-compose.yml 文件所在的目录,然后运行以下命令:
docker-compose build
- 接着,若要启动网站和 Web API,请运行以下命令:
docker-compose up
- 可以浏览到 http://localhost:5902