【问题标题】:Docker - publish Asp.Net CoreDocker - 发布 Asp.Net Core
【发布时间】:2017-12-15 03:59:25
【问题描述】:

我正在构建一个具有分离的前端(Angular 4 - 来自 Angular CLI)和后端应用程序(Asp.Net Core Preview 2.0)的应用程序。

我尝试使用 Docker。一切正常,但我需要手动将后端应用程序发布到 ${source:-obj/Docker/publish}。 有可能实现自动化吗?比如把发布代码放到 Dockerfile 或者 docker compose 中?

这是我的后端应用程序的 Dockerfile:

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

这是我的前端应用程序的 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"]

这是我的 docker-compose:

version: '3.3'

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

提前致谢。

【问题讨论】:

    标签: .net docker asp.net-core containers docker-compose


    【解决方案1】:

    您可以将前端和后端的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"]
    

    然后将单个图像构建为:

    docker build -t "frontendbackend" -f Dockerfile .
    

    【讨论】:

      【解决方案2】:

      如果您使用 Visual Studio。为您的后端项目添加 docker 支持。然后将 docker-compose 项目设置为启动项目。当您构建解决方案时,它将在 docker-compose.ci.build.yml 上运行 docker compose,这将为您完成所有工作。如果您想发布图像,请将构建更改为发布并再次构建。

      【讨论】:

      • 我想运行后端和前端。您的解决方案仅适用于后端。
      猜你喜欢
      • 2016-06-24
      • 2019-05-23
      • 1970-01-01
      • 2018-10-23
      • 2021-01-30
      • 1970-01-01
      • 2021-10-14
      • 2022-01-01
      • 2018-09-01
      相关资源
      最近更新 更多