美好的一天,
我是docker的新手。我有2个项目,每个项目中都有dockerfile。
我的项目是: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;"]
当我一个一个地构建并运行它们时,这两个dockerfile都正常工作。
我主要关心的是,如何将它们转换为docker-compose.yml
,以避免一个接一个地运行创建的图像。
答案 0 :(得分: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 ...