运行netcore react应用程序时出现docker compose错误
当我在不使用docker compose的情况下构建应用程序时:运行netcore react应用程序时出现docker compose错误,docker,asp.net-core,docker-compose,Docker,Asp.net Core,Docker Compose,当我在不使用docker compose的情况下构建应用程序时: docker build -t aspnetapp . docker run -d -p 8080:80 --name myapp aspnetapp docker容器运行正常。但是当我尝试运行它时,使用docker compose up,图像构建成功,但网站在加载时给了我错误 dockerfile: FROM microsoft/dotnet:sdk AS build-env WORKDIR /app RUN curl -s
docker build -t aspnetapp .
docker run -d -p 8080:80 --name myapp aspnetapp
docker容器运行正常。但是当我尝试运行它时,使用docker compose up
,图像构建成功,但网站在加载时给了我错误
dockerfile:
FROM microsoft/dotnet:sdk AS build-env
WORKDIR /app
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install -y nodejs
# 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
# Build runtime image
FROM microsoft/dotnet:aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "app.dll"]
docker compose:
version: '3.4'
services:
app:
image: aspnetapp
build: ./app
ports:
- "8080:80"
您的Dockerfile是否在
/
或/app
中?如果它位于/
中,请将docker-compose.yml更改为build:。/
编辑
我刚刚意识到,您正在docker-compose.yml中指定
image
和build
;摆脱图像
你的Dockerfile在/
或/app
中吗?如果它位于/
中,请将docker-compose.yml更改为build:。/
编辑
我刚刚意识到,您正在docker-compose.yml中指定image
和build
;去除图像
删除
environment: - ASPNETCORE_ENVIRONMENT=Development
从compose.override文件修复了所有这些问题。我不知道为什么会出问题。删除
environment: - ASPNETCORE_ENVIRONMENT=Development
从compose.override文件修复了所有这些问题。我不确定问题出在哪里。如果是一个dotnet应用程序,你的应用程序在哪里尝试使用npm?这是一个dotnet react appOkay,那么这些react资源应该从“build env”中生成和复制"... 我不确定compose是否真的是这里的问题,因为如果您首先在compose之外构建了容器,那么整个图像都应该被缓存,并且在行为上看不到任何差异,但是为什么在我使用docker compose时它不起作用?通过docker build,一切正常。我已经在dockerfile中指定它需要nodejs你只是说构建环境有nodejs,而不是运行时显然需要npm来做一些事情如果它是一个dotnet应用程序,你的应用程序在哪里尝试使用npm?它是一个dotnet react appOkay,那么这些react资源应该从“构建环境”中构建和复制"... 我不确定compose是否真的是这里的问题,因为如果您首先在compose之外构建了容器,那么整个图像都应该被缓存,并且在行为上看不到任何差异,但是为什么在我使用docker compose时它不起作用?通过docker build,一切正常。我已经在dockerfile中指定它需要nodejs,您只是说构建环境有nodejs,而不是运行时,它显然需要npm来做一些事情。/app。我说码头工人很好。只是当我运行它时,我才发现错误。/app。我说码头工人很好。就在我运行它的时候,我发现了错误。你在问题中发布的代码中有这个吗?你在问题中发布的代码中有这个吗?