我想在dotnet核心映像中集成python,因为我需要执行python脚本。当我执行这个DockerFile时,会创建很多悬空映像。
Dangling Images
还有,有没有什么合适的方法来集成一个python解释器?例如,我会在.net核心容器中获得一个URL,然后我想把那个URL传递给python容器。我们如何完成这个任务呢?我是Docker的新手。
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
RUN apt-get update && apt-get install -y --no-install-recommends wget
RUN apt-get update && apt-get install -y python3.7 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p tmp
WORKDIR /tmp
RUN wget https://github.com/projectdiscovery/subfinder/releases/download/v2.4.4/subfinder_2.4.4_linux_amd64.tar.gz
RUN tar -xvf subfinder_2.4.4_linux_amd64.tar.gz
RUN mv subfinder /usr/local/bin/
#Cleanup
#wget cleanup
RUN rm -f subfinder_2.4.4_linux_amd64.tar.gz
FROM base AS final
RUN mkdir app
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY Publish/ /app/
ENTRYPOINT ["dotnet", "OnePenTest.Api.dll"]
2条答案
按热度按时间icomxhvb1#
由于映像是不可变的,因此您所做的任何更改都会导致创建新映像,因为合成文件指定了构建命令,所以在启动容器时将重新运行构建命令。
如果您正在使用
COPY
合成的任何文件发生更改,则不再使用当前的映像缓存,它将在不删除旧映像的情况下构建新映像。可以使用以下命令构建文件
sudo docker-compose build --force-rm [--build-arg key=val...] [SERVICE...]
docker build --rm -t <tag>
选项
--force-rm
在成功构建后删除中间容器。zazmityj2#
只需配置您的
docker-compose.yaml
,然后使用以下命令运行:将标志
--no-build
添加到docker compose up
中。参考:https://docs.docker.com/engine/reference/commandline/compose_up/