Как создать один образ докера для приложений .Net Core2.2 и Angular7? - PullRequest
1 голос
/ 06 марта 2019

У меня есть приложение angular7, которое находится в папке с именем front рядом с моими папками .Net Core 2.2, такими как контроллеры и т. Д. Как я могу создать один образ для моих приложений .Net Core и Angular?Является ли это возможным?вот мой dockerfile и мой файл docker-compose прямо сейчас: Dockerfile:

FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c release -o out

# ENV ASPNETCORE_ENVIRONMENT Development

# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "test.dll"]

docker-compose.yml:

version: '3.0'

services:
   db:
     image: mysql:latest
     command: --lower_case_table_names=1
     environment:
       MYSQL_DATABASE: test
       MYSQL_USER: test
       MYSQL_ROOT_PASSWORD: test
     volumes:
       - dbdata:/var/lib/mysql
       - _MySQL_Init_Script:/docker-entrypoint-initdb.d
     restart: always
   onlinesm.logs:
     image: test
     build: 
       context:  .
     ports:
       - "8080:80"
volumes:
  dbdata: {}
  _MySQL_Init_Script : {}

1 Ответ

1 голос
/ 06 марта 2019

Если я правильно понимаю вашу проблему.

Вам необходимо скопировать Angular-код в контейнер.

Ваш Dockerfile будет:

FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c release -o out

# ENV ASPNETCORE_ENVIRONMENT Development

# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
#Copy static content
COPY front/ /app/front/
ENTRYPOINT ["dotnet", "test.dll"]  

Теперь вам нужно настроитьваше приложение, чтобы получить интерфейс из / app / front directory.

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider("/app/front"),
        RequestPath = "/front"
    });
}

Извините за мой плохой C # ... Здесь документация

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