我正在尝试创建一个ASP.NET 5解决方案的图像,它由4个项目组成。以下是结构:
不确定应该放在哪里。是在我的解决方案的根文件夹中,其中包含全局global.json文件,还是在我的Web应用程序文件夹中,其中包含项目project.json文件?当然,我已根据文件所在位置进行了修改。
无论如何,两者都似乎可以工作,因为当我运行命令时,它会下载我需要的所有库:
docker build -t quizzcorrector .
我的问题是,在某个时刻,docker告诉我:
无法找到Models>=1.0.0 无法找到FlashTools>=1.0.0 无法找到QuizzService>=1.0.0
我在这个线程上看到https://github.com/aspnet/aspnet-docker/issues/19,在多项目解决方案中,我们应该运行命令"kpm pack",将我的应用程序打包成可部署和可运行的形式。
我找不到使用kpm pack命令的Dockerfile示例,只有文档:https://github.com/aspnet/Home/wiki/Package-Manager 我当然也尝试使用ADD或COPY命令将我的项目内容复制到容器的文件系统中,但仍然出现相同的错误。
谢谢您的帮助。
- FlashTools(ASP.NET 5类库)
- Models(ASP.NET 5类库)
- QuizzCorrector(ASP.NET 5 Web应用程序)
- QuizzService(ASP.NET 5类库)
FROM microsoft/aspnet
COPY . /app
WORKDIR /app
RUN ["kpm", "restore"]
EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]
不确定应该放在哪里。是在我的解决方案的根文件夹中,其中包含全局global.json文件,还是在我的Web应用程序文件夹中,其中包含项目project.json文件?当然,我已根据文件所在位置进行了修改。
无论如何,两者都似乎可以工作,因为当我运行命令时,它会下载我需要的所有库:
docker build -t quizzcorrector .
我的问题是,在某个时刻,docker告诉我:
无法找到Models>=1.0.0 无法找到FlashTools>=1.0.0 无法找到QuizzService>=1.0.0
我在这个线程上看到https://github.com/aspnet/aspnet-docker/issues/19,在多项目解决方案中,我们应该运行命令"kpm pack",将我的应用程序打包成可部署和可运行的形式。
我找不到使用kpm pack命令的Dockerfile示例,只有文档:https://github.com/aspnet/Home/wiki/Package-Manager 我当然也尝试使用ADD或COPY命令将我的项目内容复制到容器的文件系统中,但仍然出现相同的错误。
谢谢您的帮助。
Dockerfile
不仅可以运行,还可以构建,但也存在一些缺点。每次添加新项目到解决方案时,都应该更新Dockerfile
。此外,如果有其他需要运行的步骤,例如npm install
,则应手动更新Dockerfile
以包含node
镜像来执行它。 - Alexey Andrushkevich