2017-04-13 20 views
14

ドッカーをビルドするとエラーが発生します。ASP.NETでビルドドッカーコア:「そのようなファイルまたはディレクトリがありません」エラー

Sending build context to Docker daemon 3.584 kB 
Step 1/8 : FROM microsoft/aspnetcore:1.1 
---> 2628aaa7b8cf 
Step 2/8 : ENV ASPNETCORE_URLS "http://*:5000" 
---> Using cache 
---> 5dffde204fef 
Step 3/8 : ENV ASPNETCORE_ENVIRONMENT "Development" 
---> Using cache 
---> 3064358bc0eb 
Step 4/8 : ARG source 
---> Using cache 
---> 4159d0eb78c0 
Step 5/8 : WORKDIR /app 
---> Using cache 
---> 61a394c84304 
Step 6/8 : EXPOSE 5000 
---> Using cache 
---> c7c2309f7085 
Step 7/8 : COPY ${source:-obj/Docker/publish} . 
lstat obj/Docker/publish: no such file or directory 

ここに私のDockerfileがあります。

FROM microsoft/aspnetcore:1.1 
ENV ASPNETCORE_URLS="http://*:5000" 
ENV ASPNETCORE_ENVIRONMENT="Development" 
ARG source 
WORKDIR /app 
EXPOSE 5000 
COPY ${source:-obj/Docker/publish} . 
ENTRYPOINT ["dotnet", "ProjectTestApi.dll" 

と私はコマンドを実行します。

$ docker build -t my-docker-image-test . 

あなたは何が間違っている任意のIDEを持っていますか?

+0

私のソリューションを試しましたか? –

答えて

26

あなたのソリューションを公開していないために起こっています。エラーメッセージは自明です:

デフォルトで
no such file or directory 

、あなたはあなたにASP.NETコアのVisual Studio 2017プロジェクトドッカーサポートを追加するとき、それはそれらのいずれかがdocker-compose.ci.build.ymlで、docker-compose.ymlファイルの束を作成し、これはビルドプロセスを処理します。 Visual Studioでプロジェクトをビルドすると、パイプラインdocker-composeが実行されます。

docker-compose.ci.build.ymlの内容は、これに似ている(これは明らかに、カスタム設定とプロジェクト名によって異なります):

version: '2' 

services: 
    ci-build: 
    image: microsoft/aspnetcore-build:1.0-1.1 
    volumes: 
     - .:/src 
    working_dir: /src 
    command: /bin/bash -c "dotnet restore ./SolutionName.sln && dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish" 

あなたが最後の行で見ることができるように、実際に呼び出さdotnet publishコマンドがあり、ビルド&はあなたのプロジェクトを公開します。

だから、あなたの問題のためのソリューション、ちょうどドッキングウィンドウを呼び出す前に、プロジェクトをビルドします:オプションのVisual Studio 2017年に「ドッカーサポートを追加」を使用する場合

dotnet publish ./SolutionName.sln -c Release -o ./obj/Docker/publish 
docker build -t my-docker-image-test . 
+0

私は同じ問題があります。これらの2行をどこに追加すればよいですか?私のプロジェクトのDockerfileで? – GSPdibbler

+1

@ GSPdibblerこれはコマンドラインコマンドで、ドッカーCLIを実行するのと同じ場所です。おそらくバットファイル。 –

2

、VSがの束を生成し、ドッカーの作成ファイルとDockerfiles。 Marcin Zablockiが述べたように、これらのうちの1つはdocker-compose.ci.build.ymlです。

Dockerの考え方に沿うために、ドッカーコンテナを使用してプロジェクトを公開することができます。プロジェクトを公開するには、次の手順取る:

  1. git clone/pullルートディレクトリにプロジェクト& CDが
  2. docker-compose up

であなたのプロジェクトを開始し

  • docker-compose -f docker-compose.ci.build.yml up
  • でプロジェクトを公開私が持っていますメインプロジェクトの Dockerfileが問題を起こしている状況が発生しました。これは FROM microsoft/aspnetcore:1.1で発生し、 FROM microsoft/aspnetcore:1.1.2またはプロジェクトに必要なバージョンに変更できます。

    関連する問題