1、Dockerfile放在sln同一层级。
2、Dockerfile
1 # https://hub.docker.com/_/microsoft-dotnet 2 FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build 3 WORKDIR /source 4 5 # copy csproj and restore as distinct layers 6 COPY *.sln . 7 COPY netcoretest/*.csproj ./netcoretest/ 8 RUN dotnet restore 9 10 # copy everything else and build app 11 COPY netcoretest/. ./netcoretest/ 12 WORKDIR /source/netcoretest 13 RUN dotnet publish -c release -o /app --no-restore 14 15 RUN dotnet restore 16 17 # copy everything else and build app 18 COPY netcoretest/. ./netcoretest/ 19 WORKDIR /source/netcoretest 20 RUN dotnet publish -c release -o /app --no-restore 21 22 # final stage/image 23 FROM mcr.microsoft.com/dotnet/aspnet:5.0 24 25 # 放在最后一个FROM下,不能放在第一个sdk下。 26 # 最后生成的镜像,以最后一条 FROM 为准,之前的 FROM 会被抛弃。 27 # 每一条 FROM 指令都是一个构建阶段,多条 FROM 就是多阶段构建。 28 # 虽然最后生成的镜像只能是最后一个阶段的结果,但是,能够将前置阶段中的文件拷贝到后边的阶段中,这就是多阶段构建的最大意义。 29 # 最大的使用场景是将编译环境和运行环境分离 30 31 RUN apt-get update -y 32 RUN apt-get install python2.7 -y 33 RUN echo "alias python='/usr/bin/python2.7'">>/etc/bash.bashrc 34 35 WORKDIR /app 36 COPY --from=build /app ./ 37 ENTRYPOINT ["dotnet", "netcoretest.dll"]
3、还没测试:ENV TIMEZONE Asina/Shanghai
4、挂载在测试中。
5、python还没完全测试