簡體   English   中英

ASP.NET Core 5 + SQL Server Docker 容器:無效的撰寫項目

[英]ASP.NET Core 5 + SQL Server Docker container: invalid compose project

我正在嘗試使用以下指南在 raspberry pi4 上設置一個簡單的容器。 出於某種原因,我總是遇到以下錯誤:

[0mservice "my-api" 既沒有指定圖像也沒有指定構建上下文:無效的撰寫項目 docker-compose

由於這是我的第一個“真正的”docker 容器設置,我不知道現在該做什么。 我真的通過谷歌搜索查找了我能找到的每一個問題(甚至用 bing 嘗試過,是的,非常絕望)。 但我真的找不到像樣的指南/答案。

我將附上我的 docker 文件:docker compose:

version: "3.9"
services:
web:
    build: .
    ports:
        - "8000:80"
    depends_on:
        - db
db:
    image: "mcr.microsoft.com/mssql/server"
    environment:
        SA_PASSWORD: "Your_password123"
        ACCEPT_EULA: "Y"

DockerFile(API 項目)

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this 
Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:5.0.302-buster-slim-amd64 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0.302-buster-slim-amd64 AS build
WORKDIR /src
COPY ["my-api/my-api.csproj", "my-api/"]
RUN dotnet restore "my-api/my-api.csproj"
COPY . .
WORKDIR "/src/my-api"
RUN dotnet build "my-api.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "my-api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "my-api.dll"]

RUN chmod +x ./entrypoint.sh
CMD /bin/bash ./entrypoint.sh

入口點.sh

#!/bin/bash

set -e
run_cmd="dotnet run --server.urls http://*:80"

until dotnet ef database update; do
>&2 echo "SQL Server is starting up"
sleep 1
done

>&2 echo "SQL Server is up - executing command"
exec $run_cmd

如果有人能將我推向正確的方向,那就太棒了

yaml 文件中的縮進很重要。 您的服務需要在services:行下縮進。

version: "3.9"
services:
    web:
        build: .
        ports:
            - "8000:80"
        depends_on:
            - db
    db:
        image: "mcr.microsoft.com/mssql/server"
        environment:
            SA_PASSWORD: "Your_password123"
            ACCEPT_EULA: "Y"

您是否使用 Visual Studio(不是代碼)來構建它?

Visual Studio 有一個選項“將解決方案和項目文件放在同一目錄中”,請確保在成為 docker/docker-compose 專家之前檢查它。

當未選中該選項並添加 docker 支持(或容器編排支持)時,Visual Studio 往往會弄亂 .csproj 文件的相對路徑。

COPY ["my-api/my-api.csproj", "my-api/"]應該具有csproj文件的相對路徑。

只是一種預感。

此外,bing 也沒有幫助我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM