aspnet core web docker compose 环境中的 FileNotFoundException
FileNotFoundException in aspnet core web docker compose environment
我正在努力 docker 化我的 aspnet 核心身份服务器 Web 应用程序。我已经测试了来自 docker 容器的 运行ning 应用程序并且它有效。
$ docker run -d ^
-e "KeyFilePath"="/app/certs/authFile.cer" ^
-p 5000:5000 ^
-v e:/certs:/app/certs/ ^
--name identity ^
identity:0.1-docker
现在,我在我的 docker-compose.yml 中连接它,我的应用程序无法找到在 /app/certs/[=49 指定的文件=].这是我的 docker-身份服务器
的组成部分
services:
identity:
image: identity.api:${PLATFORM:-linux}-${TAG:-latest}
build:
context: .
dockerfile: Identity/Dockerfile
depends_on:
- sqlserver
ports:
- 5000:5000
volumes:
- "e:/certs:/app/certs"
environment:
- KeyFilePath="/app/certs/authFile.cer"
我已经对此进行故障排除已有一段时间了。当 运行ning 使用 docker 运行 和 -v
时,音量映射顺利,但无法从 docker-compose up identity
实现相同
使用 docker exec -it <container-id> sh
,我可以看到所需目录中的文件存在。不过,我的应用无法访问该文件。
在代码中,只需使用 File.Exists(keyFilePath)
which
检查是否存在
- returns
true
当容器通过 docker run
命令启动时。
- returns
false
当开始使用 docker-compose up identity
时。即使文件存在,检查日志也会显示 File.Exists ["/app/certs/authFile.cer"] => False.
。
知道这个奇怪问题的根本原因吗?
我运行宁
- Aspnet 核心 2.1 网络应用程序
- Docker 桌面版:
Docker version 20.10.2, build 2291f61
- Docker 撰写版本:
docker-compose version 1.27.4, build 40524192
提前感谢您的帮助
你试过改变吗
来自
environment:
- KeyFilePath="/app/certs/authFile.cer"
至
environment:
- KeyFilePath=/app/certs/authFile.cer
我正在努力 docker 化我的 aspnet 核心身份服务器 Web 应用程序。我已经测试了来自 docker 容器的 运行ning 应用程序并且它有效。
$ docker run -d ^
-e "KeyFilePath"="/app/certs/authFile.cer" ^
-p 5000:5000 ^
-v e:/certs:/app/certs/ ^
--name identity ^
identity:0.1-docker
现在,我在我的 docker-compose.yml 中连接它,我的应用程序无法找到在 /app/certs/[=49 指定的文件=].这是我的 docker-身份服务器
的组成部分services:
identity:
image: identity.api:${PLATFORM:-linux}-${TAG:-latest}
build:
context: .
dockerfile: Identity/Dockerfile
depends_on:
- sqlserver
ports:
- 5000:5000
volumes:
- "e:/certs:/app/certs"
environment:
- KeyFilePath="/app/certs/authFile.cer"
我已经对此进行故障排除已有一段时间了。当 运行ning 使用 docker 运行 和 -v
时,音量映射顺利,但无法从 docker-compose up identity
实现相同
使用 docker exec -it <container-id> sh
,我可以看到所需目录中的文件存在。不过,我的应用无法访问该文件。
在代码中,只需使用 File.Exists(keyFilePath)
which
- returns
true
当容器通过docker run
命令启动时。 - returns
false
当开始使用docker-compose up identity
时。即使文件存在,检查日志也会显示File.Exists ["/app/certs/authFile.cer"] => False.
。
知道这个奇怪问题的根本原因吗?
我运行宁
- Aspnet 核心 2.1 网络应用程序
- Docker 桌面版:
Docker version 20.10.2, build 2291f61
- Docker 撰写版本:
docker-compose version 1.27.4, build 40524192
提前感谢您的帮助
你试过改变吗
来自
environment:
- KeyFilePath="/app/certs/authFile.cer"
至
environment:
- KeyFilePath=/app/certs/authFile.cer