DockerCompose для приложений ASP.NET Core API и Angular6 - PullRequest
0 голосов
/ 30 августа 2018

Добрый день,

Я новичок в докере. У меня есть 2 проекта, в каждом из которых есть файлы Docker.

Мои проекты: 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 вот мой рабочий докер-файл.

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;"]

Оба этих docker-файла работают правильно, когда я собираю и запускаю их один за другим.

Моя главная проблема в том, как я могу преобразовать их в docker-compose.yml, чтобы избежать запуска созданного образа один за другим.

1 Ответ

0 голосов
/ 30 августа 2018

Предположим, у вас есть следующая структура каталогов:


    /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 ...


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...