2018-10-25 23:38:12 +00:00
|
|
|
# Copyright 2018 Mikhail Klementev. All rights reserved.
|
|
|
|
# Use of this source code is governed by a AGPLv3 license
|
|
|
|
# (or later) that can be found in the LICENSE file.
|
|
|
|
#
|
|
|
|
# Usage:
|
|
|
|
#
|
|
|
|
# $ docker build -t gen-ubuntu1804-image .
|
|
|
|
# $ docker run --privileged -v $(pwd):/shared -t gen-ubuntu1804-image
|
|
|
|
#
|
2019-07-12 17:11:16 +00:00
|
|
|
# ubuntu1804.img will be created in current directory. You can change $(pwd) to
|
2018-10-25 23:38:12 +00:00
|
|
|
# different directory to use different destination for image.
|
|
|
|
#
|
|
|
|
FROM ubuntu:18.04
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt update
|
|
|
|
RUN apt install -y debootstrap qemu
|
|
|
|
RUN apt install -y linux-image-generic
|
|
|
|
|
|
|
|
ENV TMPDIR=/tmp/ubuntu
|
|
|
|
ENV IMAGEDIR=/tmp/image
|
|
|
|
ENV IMAGE=/shared/ubuntu1804.img
|
|
|
|
ENV REPOSITORY=http://archive.ubuntu.com/ubuntu
|
|
|
|
ENV RELEASE=bionic
|
|
|
|
|
|
|
|
RUN mkdir $IMAGEDIR
|
|
|
|
|
2019-08-21 06:16:25 +00:00
|
|
|
# Must be executed with --privileged because of /dev/loop
|
2019-08-31 12:45:55 +00:00
|
|
|
CMD debootstrap --include=openssh-server,policykit-1 \
|
|
|
|
$RELEASE $TMPDIR $REPOSITORY && \
|
2018-10-25 23:38:12 +00:00
|
|
|
/shared/setup.sh $TMPDIR && \
|
|
|
|
qemu-img create $IMAGE 2G && \
|
|
|
|
mkfs.ext4 -F $IMAGE && \
|
|
|
|
mount -o loop $IMAGE $IMAGEDIR && \
|
|
|
|
cp -a $TMPDIR/* $IMAGEDIR/ && \
|
|
|
|
umount $IMAGEDIR
|