DockerCompose for ASP.NET Core API App和Angular6 App

问题描述 投票:0回答:1

美好的一天,

我是Docker的新手。我有两个项目,每个项目都有dockerfiles。

我的项目是:ASP.NET Core API和Angular6

在我的ASP.NET Core API项目中,这是我的工作dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/DockerPublishedApp} .
ENTRYPOINT ["dotnet", "myapp.dll"]

我手动发布了我的应用程序,它存储在我的DockerPublishedApp中。

在我的Angular6项目中,这是我的工作dockerfile。

FROM nginx:1.13.3-alpine
RUN rm -rf /usr/share/nginx/html/*
COPY /dist/mypublishedangularapp /usr/share/nginx/html
CMD ["nginx","-g","daemon off;"]

当我逐个构建和运行它们时,这两个dockerfiles都正常工作。

我主要担心的是,如何将它们转换为docker-compose.yml以避免逐个运行创建的图像。

angular docker asp.net-web-api docker-compose dockerfile
1个回答
0
投票

假设您具有以下目录结构:


    /proj1
        /Dockerfile
    /proj2
        /Dockerfile
    /docker-compose.yml

您可以拥有以下撰写文件:


    version: '3.4'

    services:
      proj1:
        image: proj1:latest     
        build:
          context: ./proj1
          dockerfile: Dockerfile

      proj2:
        image: proj2:latest     
        build:
          context: ./proj2
          dockerfile: Dockerfile  


并运行docker-compose -f docker-compose.yml up --build来构建两个图像并运行它们。这将构建图像proj1:latest和proj2:latest。

或者,如果您不想构建它们,只需删除构建密钥,然后省略--build。


要从Dockerfile运行发布:

    version: '3.4'

    services:
      proj1:
        image: proj1:latest     
        build:
          context: ./proj1
          dockerfile: Dockerfile 
        command: dotnet publish ...


© www.soinside.com 2019 - 2024. All rights reserved.