Я пытаюсь запустить ASP.Net Core в Docker с помощью docker-compose.Вот содержание dockerfile
:
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["SchoolContact/SchoolContact.csproj", "SchoolContact/"]
RUN dotnet restore "SchoolContact/SchoolContact.csproj"
COPY . .
WORKDIR "/src/SchoolContact"
RUN dotnet build "SchoolContact.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "SchoolContact.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app
ENV ASPNETCORE_URLS http://+:5000
EXPOSE 5000 80
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "SchoolContact.dll"]
Содержимое docker-compose.yml
:
version: '3'
services:
api:
image: schoolcontact
build:
context: .
dockerfile: SchoolContact/Dockerfile
links:
- db:db
ports:
- '5000:5000'
restart: always
networks:
- school
db:
image: mysql:5.7
volumes:
- ./db:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: Test
MYSQL_USER: admin
MYSQL_PASSWORD: 123456
networks:
- school
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- '8080:80'
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: 123456
networks:
- school
reverse-proxy:
container_name: proxy
image: nginx
depends_on:
- api
ports:
- "9090:8080"
volumes:
- ./proxy.conf:/etc/nginx/conf.d/default.conf
networks:
- school
networks:
school:
volumes:
db:
driver: "local"
proxy.conf
:
server {
listen 8080;
location / {
proxy_pass http://api:5000;
}
}
IЯ пробовал слишком много раз, прежде чем публиковать здесь и попросить помощи, я пытался запустить без nginx
, выставить порт или нет, так много способов.Но я все еще не могу получить доступ к приложению.Моя последняя цель - разместить приложение в Docker и получить к нему доступ через URL http://localhost:5000
.Я не знаю, где я ошибся или что-то упустил.Мне действительно нужна помощь с этим.Спасибо за чтение.