From d96f56a838671424580766beccbe63ad677e4ab8 Mon Sep 17 00:00:00 2001 From: Carlos Konstanski Date: Wed, 22 Nov 2017 13:07:43 -0700 Subject: added docker baseimage Issue: IS-34 --- salt/openbook/baseimage/files/Dockerfile | 4 ++++ salt/openbook/baseimage/files/build.sh | 35 ++++++++++++++++++++++++++++ salt/openbook/baseimage/files/installdeps.sh | 7 ++++++ salt/openbook/baseimage/init.sls | 30 ++++++++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 salt/openbook/baseimage/files/Dockerfile create mode 100644 salt/openbook/baseimage/files/build.sh create mode 100644 salt/openbook/baseimage/files/installdeps.sh create mode 100644 salt/openbook/baseimage/init.sls (limited to 'salt/openbook/baseimage') diff --git a/salt/openbook/baseimage/files/Dockerfile b/salt/openbook/baseimage/files/Dockerfile new file mode 100644 index 0000000..a1cc8b9 --- /dev/null +++ b/salt/openbook/baseimage/files/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:xenial +MAINTAINER Carlos Konstanski +ADD docker-start.tar.xz / +RUN /installdeps.sh diff --git a/salt/openbook/baseimage/files/build.sh b/salt/openbook/baseimage/files/build.sh new file mode 100644 index 0000000..a1c5316 --- /dev/null +++ b/salt/openbook/baseimage/files/build.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Do not call directly. Meant to be called from CI build script. + +pushd {{ pillar["baseimage"]["build_dir"] }} 2>/dev/null + +echo "Creating tmp directory" +rm -rf tmp +mkdir tmp +rm -f docker-start.tar.xz + +echo "Populating with custom files" +rsync -aq data/ tmp/ + +echo "Repackaging into .xz file" +tar Jcvf docker-start.tar.xz -C tmp/ . + +echo "Deleting existing docker container" +docker stop {{ pillar["baseimage"]["container_name"] }} +docker container prune -f +docker rmi -f {{ pillar["baseimage"]["image_name"] }} + +echo "Building docker Ubuntu image" +docker build -t {{ pillar["baseimage"]["image_name"] }} . + +echo "Push docker image to the registry" +docker tag {{ pillar["baseimage"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["baseimage"]["image_name"] }} +docker push {{ pillar["registry"]["url"] }}/{{ pillar["baseimage"]["image_name"] }} + +echo "Cleaning up" +rm -rf tmp +rm -f docker-start.tar.xz + +popd 2>/dev/null +exit 0 diff --git a/salt/openbook/baseimage/files/installdeps.sh b/salt/openbook/baseimage/files/installdeps.sh new file mode 100644 index 0000000..1a1b1be --- /dev/null +++ b/salt/openbook/baseimage/files/installdeps.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +export DEBIAN_FRONTEND=noninteractive +apt-get update +apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade +apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless +exit 0 diff --git a/salt/openbook/baseimage/init.sls b/salt/openbook/baseimage/init.sls new file mode 100644 index 0000000..2cdd293 --- /dev/null +++ b/salt/openbook/baseimage/init.sls @@ -0,0 +1,30 @@ +{% for dir in pillar["baseimage"]["dirs"].items() %} +baseimage_dirs_{{ dir[0] }}: + file.directory: +{% if dir[1]["relative_to_buildroot"] %} + - name: {{ pillar["baseimage"]["build_dir"] }}/{{ dir[1]["name"] }} +{% else %} + - name: {{ dir[1]["name"] }} +{% endif %} + - user: root + - group: root + - mode: {{ dir[1]["mode"] }} + - makedirs: True +{% endfor %} + +{% for file in pillar["baseimage"]["files"].items() %} +baseimage_files_{{ file[0] }}: + file.managed: +{% if file[1]["relative_to_buildroot"] %} + - name: {{ pillar["baseimage"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }} +{% else %} + - name: {{ file[1]["path"] }}/{{ file[1]["name"] }} +{% endif %} + - source: salt://openbook/baseimage/files/{{ file[1]["source"] }} +{% if file[1]["is_template"] %} + - template: jinja +{% endif %} + - user: root + - group: root + - mode: {{ file[1]["mode"] }} +{% endfor %} -- cgit v1.3