简体   繁体   English

Docker-发布Asp.Net Core

[英]Docker - publish Asp.Net Core

I'm building an app with separated frontend (Angular 4 - from Angular CLI) and backend app (Asp.Net Core Preview 2.0). 我正在构建一个具有分离的前端(Angular CLI中的Angular 4)和后端应用程序(Asp.Net Core Preview 2.0)的应用程序。

I try to use Docker. 我尝试使用Docker。 Everything works fine but I need to manually publish backend app to ${source:-obj/Docker/publish}. 一切正常,但我需要手动将后端应用程序发布到$ {source:-obj / Docker / publish}。 Is it to possible to automate it? 有可能实现自动化吗? For example put the publish code to Dockerfile or docker compose ? 例如将发布代码放入Dockerfile或docker compose?

Here's my Dockerfile of my backend app: 这是我的后端应用程序的Dockerfile:

FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Api.dll"]

Here's my Dockerfile of my frontend app: 这是前端应用程序的Dockerfile:

FROM node:7
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
EXPOSE 4200
CMD ["npm", "start"]

Here's my docker-compose: 这是我的docker-compose:

version: '3.3'

services:
  api:
    image: api
    build:
      context: ./Api
      dockerfile: Dockerfile
  frontend:
    image: frontend
    build: 
      context: ./FrontEnd
      dockerfile: Dockerfile

Thanks in advance. 提前致谢。

You can combine the content of the DockerFile of both front end and backend as follows: 您可以按如下方式组合前端和后端的DockerFile的内容:

FROM node:7
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
EXPOSE 4200

FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Api.dll"]
CMD ["npm", "start"]

Then build the single image as : 然后将单个图像构建为:

docker build -t "frontendbackend" -f Dockerfile .

If you use Visual Studio. 如果您使用Visual Studio。 Add docker support for your backend project. 为您的后端项目添加docker支持。 Then set docker-compose project as a start up project. 然后将docker-compose项目设置为启动项目。 When you build solution it will run docker compose on docker-compose.ci.build.yml that will do all job for you. 在构建解决方案时,它将在docker-compose.ci.build.yml上运行docker compose,它将为您完成所有工作。 If you want to publish images then change build to release and build again. 如果要发布图像,则将build更改为release,然后重新构建。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM