From 63fab6a47a42fc28ae11522cc38502380570d8bc Mon Sep 17 00:00:00 2001 From: Jim Van Fleet <jim.van.fleet@levvel.io> Date: Mon, 12 Sep 2016 15:45:11 -0400 Subject: [PATCH] Adding autoexec support --- Dockerfile | 11 ++++++++++- README.md | 6 +++++- container_files/bin/firstrun.sh | 6 ++++++ container_files/bin/onbuild.sh | 6 ++++++ tests/base.bats | 16 ++++++++++++++++ 5 files changed, 43 insertions(+), 2 deletions(-) create mode 100755 container_files/bin/firstrun.sh create mode 100755 container_files/bin/onbuild.sh diff --git a/Dockerfile b/Dockerfile index 99fed6b..b840c3d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,13 +25,22 @@ RUN ln -sf /usr/share/zoneinfo/UTC /etc/localtime \ RUN yum -y install --setopt=tsflags=nodocs epel-release && \ yum -y install net-tools wget curl tar unzip mlocate logrotate strace telnet man unzip vim wget rsyslog cron && \ yum clean all && \ - mkdir -p /opt/tier + mkdir -p \ + /opt/autoexec/bin \ + /opt/autoexec/onbuild \ + /opt/autoexec/firstrun \ + /opt/bin \ + /opt/etc \ + /opt/tier \ # Install Trusted Certificates RUN update-ca-trust force-enable ADD ./cert/InCommon.crt /etc/pki/ca-trust/source/anchors/ RUN update-ca-trust extract +ADD container_files/bin/firstrun.sh /opt/autoexec/bin/firstrun.sh +ADD container_files/bin/onbuild.sh /opt/autoexec/bin/onbuild.sh + # Set default environment variables. ENV HOME /opt/tier diff --git a/README.md b/README.md index 99032bb..5cbde40 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,8 @@ Internet2 managed CentOS 7 base image ## purpose -This container allows I2/TIER to insulate itself against upstream changes from CentOS managed images that may be unwanted. It can also be used to trigger global changes (e.g. a new InCommon.crt) when appropriate. \ No newline at end of file +This container allows I2/TIER to insulate itself against upstream changes from CentOS managed images that may be unwanted. It can also be used to trigger global changes (e.g. a new InCommon.crt) when appropriate. + +## autorun + +You are encouraged to include /opt/autorun/bin/onbuild.sh when closing your Dockerfiles, and to include /opt/autorun/bin/firstrun.sh in your CMD entrypoints. \ No newline at end of file diff --git a/container_files/bin/firstrun.sh b/container_files/bin/firstrun.sh new file mode 100755 index 0000000..491f2b9 --- /dev/null +++ b/container_files/bin/firstrun.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +for file in /opt/autoexec/firstrun/* +do + cmd "$file" >> /opt/etc/autoexec.firstrun.log +done \ No newline at end of file diff --git a/container_files/bin/onbuild.sh b/container_files/bin/onbuild.sh new file mode 100755 index 0000000..f193cde --- /dev/null +++ b/container_files/bin/onbuild.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +for file in /opt/autoexec/build/* +do + cmd "$file" >> /opt/etc/autoexec.build.log +done \ No newline at end of file diff --git a/tests/base.bats b/tests/base.bats index 7ebaccf..a5d301d 100644 --- a/tests/base.bats +++ b/tests/base.bats @@ -14,3 +14,19 @@ load ../common [ "$status" -eq 0 ] [[ ${output} == *"302"* || ${output} == *"200"* ]] } + +@test "Onbuild support script" { + docker run -i $maintainer/$imagename find /opt/autoexec/bin/onbuild.sh +} + +@test "Onbuild support home" { + docker run -i $maintainer/$imagename find /opt/autoexec/onbuild +} + +@test "Firstrun support bin" { + docker run -i $maintainer/$imagename find /opt/autoexec/bin/firstrun.sh +} + +@test "Firstrun support home" { + docker run -i $maintainer/$imagename find /opt/autoexec/firstrun +} \ No newline at end of file