我们有根据以下层次结构编写的微服务项目
----BaseDir
|-----Services
|--------Microservices
|-----------Docker file
|-----ClassLibraries
|--------Project1
|--------Project2
现在,当执行docker build
命令时,我们遇到了问题。 MicroService Project引用了ClassLibraries文件夹下的一些项目。
以下是docker文件的内容
FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app
# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build
ADD ["../../ClassLibraries/Project1/Code/*.*","./"]
RUN dotnet publish -c Release -o out
# Build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
EXPOSE 80
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "Service1.dll"]
当我们运行docker build
命令时,我们收到以下错误:
ADD failed: no source files were specified
答案 0 :(得分:2)
docker build
时, Dockerfile
只能访问其上下文(与ADD
及以下相同的文件夹中的文件)。因此,您无法以这种方式引用父文件夹。遗憾的是,您需要重新构建文件夹布局才能使其正常工作。