Build from source and add pre and post install for build docker container image
This commit is contained in:
parent
382a4cb1f0
commit
3f7deaccd0
55
src/build.sh
Normal file
55
src/build.sh
Normal file
@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2021 Sambo Chea <sombochea@cubetiqs.com
|
||||
# MIT
|
||||
#
|
||||
|
||||
set -ex
|
||||
DOCKER_USERNAME="${DOCKER_USERNAME:-cubetiq}"
|
||||
ALPINE_VERSION="${ALPINE_VERSION:-3.13.3}"
|
||||
PACKAGES="apk-tools ca-certificates ssl_client"
|
||||
|
||||
MKROOTFS="/tmp/alpine-make-rootfs"
|
||||
BUILD_TAR="/tmp/docker/alpine-rootfs-${ALPINE_VERSION}.tar.gz"
|
||||
DOCKER_ROOT=$(dirname $BUILD_TAR)
|
||||
PRE_INSTALL="./pre-install.sh"
|
||||
POST_INSTALL="./post-install.sh"
|
||||
|
||||
mkdir $DOCKER_ROOT
|
||||
MS_ROOT="${DOCKER_ROOT}/../microscanner"
|
||||
mkdir $MS_ROOT
|
||||
|
||||
# Build from alpine rootfs
|
||||
# Download rootfs builder and verify it.
|
||||
wget https://raw.githubusercontent.com/alpinelinux/alpine-make-rootfs/v0.5.1/alpine-make-rootfs -O "$MKROOTFS"
|
||||
echo "a7159f17b01ad5a06419b83ea3ca9bbe7d3f8c03 $MKROOTFS" | sha1sum -c -
|
||||
chmod +x ${MKROOTFS}
|
||||
|
||||
sudo ${MKROOTFS} --mirror-uri http://dl-2.alpinelinux.org/alpine \
|
||||
--branch "v${ALPINE_VERSION}" \
|
||||
--packages "$PACKAGES" \
|
||||
--script-chroot \
|
||||
"$BUILD_TAR" \
|
||||
"$POST_INSTALL"
|
||||
|
||||
# Create Dockerfile
|
||||
cat <<DOCKERFILE > "${DOCKER_ROOT}/Dockerfile"
|
||||
FROM scratch
|
||||
USER worker
|
||||
ADD $(basename $BUILD_TAR) /
|
||||
CMD ["/bin/sh"]
|
||||
DOCKERFILE
|
||||
|
||||
cd $DOCKER_ROOT
|
||||
docker build --no-cache -t "${DOCKER_USERNAME}/alpine:${ALPINE_VERSION}" .
|
||||
cd -
|
||||
|
||||
docker build --build-arg BASE_IMAGE="${DOCKER_USERNAME}/alpine:${ALPINE_VERSION}" --build-arg MS_TOKEN="${MS_TOKEN}" - <<'DOCKERFILE'
|
||||
ARG BASE_IMAGE
|
||||
FROM $BASE_IMAGE
|
||||
ARG MS_TOKEN
|
||||
RUN wget https://get.aquasec.com/microscanner -O /home/worker/microscanner \
|
||||
&& echo "8e01415d364a4173c9917832c2e64485d93ac712a18611ed5099b75b6f44e3a5 /home/worker/microscanner" | sha256sum -c - \
|
||||
&& chmod +x /home/worker/microscanner \
|
||||
&& /home/worker/microscanner $MS_TOKEN
|
||||
DOCKERFILE
|
20
src/post-install.sh
Normal file
20
src/post-install.sh
Normal file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2021 Sambo Chea <sombochea@cubetiqs.com
|
||||
# MIT
|
||||
#
|
||||
|
||||
echo "Post-installation..."
|
||||
|
||||
# Catch errors
|
||||
set -ex
|
||||
|
||||
# Ensure certs are up to date
|
||||
update-ca-certificates
|
||||
|
||||
# make saure we have the latest packages
|
||||
/sbin/apk update
|
||||
/sbin/apk upgrade
|
||||
|
||||
# Add a standard user.
|
||||
adduser -D -u1000 worker
|
7
src/pre-install.sh
Normal file
7
src/pre-install.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2021 Sambo Chea <sombochea@cubetiqs.com
|
||||
# MIT
|
||||
#
|
||||
|
||||
echo "Pre-installation..."
|
Loading…
Reference in New Issue
Block a user