mirror of
https://github.com/clearlinux/dockerfiles.git
synced 2026-08-19 04:07:42 +00:00
Minimize containers size using the os-core container
Convert golang, node, openjdk, perl, php, python, rabbitmq, ruby and tensorflow containers to be based on the minimal os-core container, using a multistage build technique to add additional Clear Linux content. Signed-off-by: Liu, Jianjun <jianjun.liu@intel.com>
This commit is contained in:
+30
-4
@@ -1,10 +1,36 @@
|
||||
FROM clearlinux:latest
|
||||
FROM clearlinux:latest AS builder
|
||||
MAINTAINER hongzhan.chen@intel.com
|
||||
|
||||
ARG swupd_args
|
||||
|
||||
# Move to latest Clear Linux release to ensure
|
||||
# that the swupd command line arguments are
|
||||
# correct
|
||||
RUN swupd update --no-boot-update $swupd_args
|
||||
RUN swupd bundle-add python3-basic $swupd_args \
|
||||
&& rm -rf /var/lib/swupd/*
|
||||
|
||||
# Grab os-release info from the minimal base image so
|
||||
# that the new content matches the exact OS version
|
||||
COPY --from=clearlinux/os-core:latest /usr/lib/os-release /
|
||||
|
||||
# Install additional content in a target directory
|
||||
# using the os version from the minimal base
|
||||
RUN source /os-release && \
|
||||
mkdir /install_root \
|
||||
&& swupd os-install -V ${VERSION_ID} \
|
||||
--path /install_root --statedir /swupd-state \
|
||||
--bundles=os-core-update,python3-basic --no-scripts
|
||||
|
||||
# For some Host OS configuration with redirect_dir on,
|
||||
# extra data are saved on the upper layer when the same
|
||||
# file exists on different layers. To minimize docker
|
||||
# image size, remove the overlapped files before copy.
|
||||
RUN mkdir /os_core_install
|
||||
COPY --from=clearlinux/os-core:latest / /os_core_install/
|
||||
RUN cd / && \
|
||||
find os_core_install | sed -e 's/os_core_install/install_root/' | xargs rm -d || true
|
||||
|
||||
|
||||
FROM clearlinux/os-core:latest
|
||||
|
||||
COPY --from=builder /install_root /
|
||||
|
||||
CMD ["python3"]
|
||||
|
||||
Reference in New Issue
Block a user