2017-07-31 18 views
0

Red Hatが提供するいくつかの指示に従ってRHEL 7の.NETコアとDockerを使い始めました。RHEL - .NETコアでproject.lock.jsonへのアクセスが拒否されました

FROM registry.access.redhat.com/dotnet/dotnetcore-11-rhel7 
ADD . /opt/app-root/src/ 
WORKDIR /opt/app-root/src/ 
EXPOSE 5000 
RUN ["/bin/bash", "-c", "/opt/rh/rh-dotnetcore11/root/usr/bin/dotnet restore"] 
RUN ["/bin/bash", "-c", "/opt/rh/rh-dotnetcore11/root/usr/bin/dotnet build"] 
CMD ["/bin/bash", "-c", "/opt/rh/rh-dotnetcore11/root/usr/bin/dotnet run"] 

私はその後、

を実行して、ドッカーイメージを構築しよう:次の内容の

私はdotnet new -t webを使用して、.NETのコアMVCアプリケーションを作成し、そのフォルダ内の私のDockerfileを作成しました、

docker build -t mvc_docker 

ここで、mvc_dockerは、私がdocker buildコマンドを実行したときのフォルダ名と、作成しようとしているイメージの名前の両方です。 、私は手動で作成する必要があります -

error: Access to the path '/opt/app-root/src/project.lock.json' is denied.

私のRHEL VMで/optディレクトリにはapp-rootディレクトリは現在ありません:

すべてがdotnet restore時によさそうだが、その後、私は、コンソールにこのエラーが出ますDockerがDockerfileで指定されたターゲットディレクトリパスにディレクトリを作成することを期待していますか?

更新:手動で/opt/app-root/srcパスを作成しましたが、同じエラーが発生しました。ls -lasrcフォルダにファイルがありません。

私のDockerfileの内容は間違っていますか?私は私のプロジェクトフォルダにbashプロンプトからdotnet restoreを実行することができ、それが正常に完了しなく

Lock file has not changed. Skipping lock file write.

を言うしかし、それは私のプロジェクトフォルダにロックファイル、いない/optの私の保存先フォルダ内のファイルにあります。

答えて

1

参照している.NET Coreイメージは、ソースからイメージへのツールを使用して作成されたものです。そのためには、使用することをお勧めします。

あなたはこのようにそれをインストールします、そして、

sudo yum install source-to-image 

(project.jsonを含む)あなたのASP.NETコア・プロジェクトのルートディレクトリを入力し、ドッキングウィンドウのイメージを構築するためにs2iコマンドを使用します。

s2i build . registry.access.redhat.com/dotnet/dotnetcore-11-rhel7 myweb-dotnetcore-app 

と使用myweb-dotnetcore-appと名付け、新しく作成されたイメージを実行:あなたは、あなたのニーズに合わせてポートを変更する必要があるかもしれません

docker run -p 8080:8080 myweb-dotnetcore-app 

を。

0

私はdocker buildコマンドを実行する前に、それを削除することによってproject.lock.jsonに関するエラーを回避することができました。
これを行うと、dotnet restoreは正常に完了しました。

悲しいことに、もう別のエラーが発生していますが、それは別の質問になります。

関連する問題