在RHEL-.NET Core上,对project.lock.json的访问被拒绝
我刚刚开始使用Red Hat提供的一些说明,在RHEL 7上使用.NET Core和Docker。
我使用dotnet new -t web
创build了一个.NET核心MVC应用程序,然后在该文件夹中创build了我的Dockerfile
,其中包含以下内容:
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"]
然后我尝试通过运行来构buildDocker镜像
docker build -t mvc_docker
其中mvc_docker
既是我在运行docker build
命令时所在文件夹的名称,也是我正在尝试创build的映像的名称。
在dotnet restore
过程中一切看起来不错,但是我在控制台中得到这个错误:
错误:访问path“/opt/app-root/src/project.lock.json”被拒绝。
目前在我的RHEL虚拟机/opt
目录中没有app-root
目录 – 是否需要手动创build一个,还是期望Docker在Dockerfile
指定的目标目录path中创build任何目录?
更新:所以我手动创build/opt/app-root/src
path,但仍然得到相同的错误,并且当我ls -la
在src
文件夹中没有文件。
我的Dockerfile内容不正确? 我可以从我的项目文件夹中的bash提示运行dotnet restore
,它成功完成,但也说
锁文件没有改变。 跳过locking文件写入。
但是,这是在我的项目文件夹中的locking文件,而不是在/opt
目标文件夹中的任何文件。
您参考的.NET Core图像是以我们的源图像工具为基础构build的,所以最好的select就是使用它。
你这样安装:
sudo yum install source-to-image
然后,input您的ASP.NET Core项目的根目录(包含project.json)并使用s2i
命令构build一个s2i
镜像。
s2i build . registry.access.redhat.com/dotnet/dotnetcore-11-rhel7 myweb-dotnetcore-app
并使用以下命令运行新创build的名为myweb-dotnetcore-app
映像:
docker run -p 8080:8080 myweb-dotnetcore-app
您可能需要更改端口以适应您的需求。
我设法解决与project.lock.json
有关的错误,在我运行我的docker build
命令之前删除它。
这样做使dotnet restore
成功完成。
可悲的是,我现在正在得到另一个错误,但这将是一个不同的问题。
- .Net Core Clrdebugging器VSDBG在Windows Docker容器中连接到远程进程时暂停应用程序
- 适当的方式报告容器中的C#应用程序的性能数据(Docker)
- .NET Core 1.1,Docker Build遇到无法用csprojfind'project.json'
- 如何创build图像并将图像推送到docker中心
- 为.net集装箱化应用程序创build一个CIpipe道
- Ubuntu上的Docker .Net Core应用程序不在localhost:8000中打开
- Docker和Octopus Deploy有什么不同?
- 无法在.Net Core API中连接到Mongo DB
- Docker退出,状态码为139