项目场景:
Dockerfile:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS base
RUN echo "Asia/Shanghai" > /etc/timezone && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@/g /etc/apt/sources.list && \
apt update && \
apt install -y curl && \
apt clean && \
rm -rf /var/lib/apt/lists/*
HEALTHCHECK --interval=1m --retries=3 --timeout=20s CMD \
curl -f -s http://127.0.0.1:8080/api/Healthy/Test
WORKDIR /app
EXPOSE 8080
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS base
WORKDIR /app
RUN ls -l && pwd
COPY BenanUtilities.Jiabao.TestTool.TestServer.sln .
COPY BenanUtilities.Jiabao.TestTool.TestServer.csproj .
RUN dotnet restore
COPY . .
RUN dotnet build
FROM build AS publish
RUN dotnet publish -c Release -o ./publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "test-server.dll"]
问题1:
docker引擎找不到build,
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS base
将build写成了base。
问题2:
仔细检查,发现
sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@/g /etc/apt/sources.list
该位置多写了一个斜杠。
问题3:
error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file.
由于在脚本文件里错写了一句“cd publish”, 导致找不到sln或csproj文件,触发此错误。