You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.3 KiB

# Build pxz in separate image to avoid big image size
FROM ubuntu:20.04 AS build
RUN apt-get update && env DEBIAN_FRONTEND=noninteractive apt-get install -y \
build-essential \
git \
liblzma-dev
# Parallel xz (LZMA) compression
RUN git clone https://github.com/jnovy/pxz.git /root/pxz
RUN cd /root/pxz && make
FROM ubuntu:20.04
ARG MENDER_ARTIFACT_VERSION=master
RUN apt-get update && env DEBIAN_FRONTEND=noninteractive apt-get install -y \
# For 'ar' command to unpack .deb
binutils \
xz-utils \
# to be able to detect file system types of extracted images
file \
# to copy files between rootfs directories
rsync \
# to generate partition table and alter partitions
parted \
gdisk \
# mkfs.ext4 and family
e2fsprogs \
# mkfs.xfs and family
xfsprogs \
# Parallel gzip compression
pigz \
sudo \
# mkfs.vfat (required for boot partition)
dosfstools \
# to download Mender binaries
wget \
# to download mender-grub-env
git \
# to compile mender-grub-env
make \
# to get rid of 'sh: 1: udevadm: not found' errors triggered by parted
udev \
# to create bmap index file (MENDER_USE_BMAP)
bmap-tools \
# to regenerate the U-Boot boot.scr on platforms that need customization
u-boot-tools \
# needed to run pxz
libgomp1 \
# zip and unzip archive
zip \
unzip \
# manipulate binary and hex
xxd \
# JSON power tool
jq \
# GRUB command line tools, primarily grub-probe
grub-common
COPY --from=build /root/pxz/pxz /usr/bin/pxz
# allow us to keep original PATH variables when sudoing
RUN echo "Defaults secure_path=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:$PATH\"" > /etc/sudoers.d/secure_path_override
RUN chmod 0440 /etc/sudoers.d/secure_path_override
RUN wget -q -O /usr/bin/mender-artifact https://downloads.mender.io/mender-artifact/$MENDER_ARTIFACT_VERSION/linux/mender-artifact \
&& chmod +x /usr/bin/mender-artifact
WORKDIR /
COPY . /mender-convert
RUN mkdir -p /mender-convert/work
RUN mkdir -p /mender-convert/input
RUN mkdir -p /mender-convert/deploy
RUN mkdir -p /mender-convert/logs
VOLUME ["/mender-convert/configs"]
VOLUME ["/mender-convert/input"]
VOLUME ["/mender-convert/deploy"]
VOLUME ["/mender-convert/logs"]
VOLUME ["/mender-convert/work"]
ENTRYPOINT ["/mender-convert/docker-entrypoint.sh"]