dockerfile
のRUN
が表示されます。ENTRYPOINT
のボリュームディレクトリは表示されません。ここでRUNコマンドでボリュームにアクセスできない
は問題を抱えているdockerfile
とdocker-compose.yml
と例です。
FROM microsoft/dotnet:2.0-sdk
EXPOSE 5000
ENV ASPNETCORE_ENVIRONMENT=Development
WORKDIR /src/testing
RUN dotnet restore
ENTRYPOINT ["dotnet", "run", "--urls=http://0.0.0.0:5000"]
docker-compose.yml
:
version: "3.4"
services:
doctnetcore-api-project:
build: ./api/
container_name: doctnetcore-api-project
image: doctnetcore-api-project:development
restart: 'always'
networks:
- mynetwork
volumes:
- /api/src:/src
networks:
mywebmc:
external:
name: mynetwork
私はdocker-compose up
を実行すると、私は以下のようなエラーが出ます:
MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.
ERROR: Service 'doctnetcore-api-project' failed to build: The command '/bin/sh -c dotnet restore' returned a non-zero code: 1
私がコメントした場合RUN dotnet restore
を実行してdocker-compose
を実行する前に手動でdotnet restore
を実行すると問題なく動作します。
何らかの理由でRUN
は私のボリュームディレクトリを見ることができず、ENTRYPOINT
は私のボリュームディレクトリを見ることができます。
ボリュームの内容がコンテナを識別するために使用されるハッシュの一部であると予想します。その内容が変更されたときに 'dotnet restore'コマンドが再起動されるようにしますか?もしそうなら、あなたはこれをボリュームにしたくないのですが、それをコンテナの状態の一部とみなすようにコピーしたいと思います。 –