第二个docker镜像覆盖了第一个镜像

jv4diomz  于 2023-10-16  发布在  Docker
关注(0)|答案(2)|浏览(138)

我在这里更新为我工作的解决方案。如果我们想在一个docker容器中运行两个以上的进程,我们可以使用下面的supervisor方法

FROM clamav/clamav:1.1
RUN apk add --no-cache supervisor
RUN apk add <process2>
COPY supervisord.conf /etc
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
[supervisord]
nodaemon=true

[program:clamav]
command=<To-start-clamav>

[program:process2]
command=.<To-start-process2>
wz3gfoph

wz3gfoph1#

第二个FROM指令是拉取一个新的图像(fluentd),删除第一个图像(clamav)中的更改。
如果你想创建两个镜像,那么你需要两个dockerfile。
所以把你的档案一分为二。
如果你计划只使用一个镜像来包含这两个应用程序,你的dockerfile应该看起来像这样:

FROM fluentd:v1.16.0-debian-1.0
COPY fluent.conf /fluentd/etc/
RUN apt install clamav clamav-daemon -y
COPY clamd.conf /etc/clamav

EXPOSE 3310/tcp
wz1wpwve

wz1wpwve2#

@pgossa,这个呢。也许不是一个好的方法,因为你提到的,但它会工作吗?只是个想法。

FROM fluent/fluentd:v1.14-1 AS fluentd
COPY fluent.conf /fluentd/etc/

FROM clamav/clamav:1.1
COPY clamd.conf /etc/clamav
COPY --from=fluentd /fluentd /fluentd
EXPOSE 3310/tcp

相关问题