├── image ├── build │ ├── clean.sh │ ├── runit │ │ ├── 1 │ │ ├── 2 │ │ ├── 3 │ │ ├── runit-2.1.1-6.el6.x86_64.rpm │ │ └── install.sh │ ├── rsyslogd │ │ ├── run │ │ └── install.sh │ ├── epel │ │ └── install.sh │ └── sshd │ │ ├── install.sh │ │ ├── run │ │ ├── insecure-key.pub │ │ └── insecure-key ├── build.sh ├── run.sh ├── ssh.sh └── Dockerfile ├── image-dev ├── build.sh ├── run.sh └── Dockerfile ├── .totally └── README.md /image/build/clean.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rm -rf /build 4 | -------------------------------------------------------------------------------- /image/build/runit/3: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo Goodbye! 4 | -------------------------------------------------------------------------------- /image/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd $(dirname $0) 3 | docker build -t poklet/centos-baseimage . 4 | -------------------------------------------------------------------------------- /image-dev/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd $(dirname $0) 3 | docker build -t poklet/centos-baseimage-dev . 4 | -------------------------------------------------------------------------------- /image/run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd $(dirname $0) 3 | docker run -rm -i -t poklet/centos-baseimage $@ 4 | -------------------------------------------------------------------------------- /image-dev/run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd $(dirname $0) 3 | docker run -i -t poklet/centos-baseimage-dev bash -l 4 | -------------------------------------------------------------------------------- /image/build/runit/2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo Running services in /etc/service 4 | runsvdir -P /etc/service 5 | -------------------------------------------------------------------------------- /image/build/rsyslogd/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | . /etc/sysconfig/rsyslog 5 | exec /sbin/rsyslogd -n $SYSLOGD_OPTIONS 6 | -------------------------------------------------------------------------------- /.totally: -------------------------------------------------------------------------------- 1 | NAME="centos-baseimage" 2 | BUILD_DIR="./image" 3 | IMAGE="$NAME:latest" 4 | CONTAINER="$USER-$NAME" 5 | TUNNEL_PORT=12000 6 | -------------------------------------------------------------------------------- /image/build/rsyslogd/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | mkdir -p /etc/service/rsyslogd 4 | cp /build/rsyslogd/run /etc/service/rsyslogd/run 5 | -------------------------------------------------------------------------------- /image/build/epel/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | yum install -y http://mirror.aarnet.edu.au/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 4 | -------------------------------------------------------------------------------- /image/build/runit/runit-2.1.1-6.el6.x86_64.rpm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pokle/centos-baseimage/HEAD/image/build/runit/runit-2.1.1-6.el6.x86_64.rpm -------------------------------------------------------------------------------- /image-dev/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM poklet/centos-baseimage 2 | RUN yum install -y git which rpm-build rpmdevtools 3 | RUN yum groupinstall -y "Development Tools" 4 | -------------------------------------------------------------------------------- /image/build/runit/1: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo Welcome to poklet/centos-baseimage 4 | logger Starting runit 1 5 | echo Welcome to poklet/centos-baseimage foo > /dev/console 6 | -------------------------------------------------------------------------------- /image/build/runit/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd $(dirname $0) 3 | 4 | yum install -y runit*.rpm man 5 | 6 | mkdir -p /etc/runit 7 | cp 1 2 3 /etc/runit/ 8 | 9 | mkdir -p /etc/service 10 | -------------------------------------------------------------------------------- /image/build/sshd/install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | yum install -y openssh-server openssh-client 4 | mkdir -p /etc/service/sshd 5 | cp /build/sshd/run /etc/service/sshd/run 6 | 7 | mkdir ~root/.ssh 8 | cp /build/sshd/insecure-key.pub ~root/.ssh/authorized_keys 9 | chmod -R u=rwx,og= ~root/.ssh 10 | -------------------------------------------------------------------------------- /image/ssh.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | cd $(dirname $0) 3 | 4 | host=$1 5 | 6 | if [ -z "$host" ]; then 7 | echo usage: ssh.sh HOST 8 | exit 1 9 | fi 10 | 11 | chmod og= build/sshd/insecure-key 12 | ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i build/sshd/insecure-key root@$host 13 | -------------------------------------------------------------------------------- /image/build/sshd/run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | [ -f /etc/ssh/ssh_host_rsa_key ] || ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' 5 | [ -f /etc/ssh/ssh_host_dsa_key ] || ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' 6 | 7 | echo -n "Starting sshd on " 8 | hostname --ip-address 9 | 10 | exec /usr/sbin/sshd -D 11 | -------------------------------------------------------------------------------- /image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM tianon/centos:6.5 2 | 3 | RUN mkdir /build 4 | 5 | ADD build/epel /build/epel 6 | RUN /build/epel/install.sh 7 | 8 | ADD build/runit /build/runit 9 | RUN /build/runit/install.sh 10 | 11 | ADD build/sshd /build/sshd 12 | RUN /build/sshd/install.sh 13 | 14 | ADD build/rsyslogd /build/rsyslogd 15 | RUN /build/rsyslogd/install.sh 16 | 17 | #RUN /build/clean.sh 18 | 19 | CMD runit 20 | -------------------------------------------------------------------------------- /image/build/sshd/insecure-key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQF3Tkg6Qj+mjQ9PtwE+A+vYHxhhgFmoi3t1voWZBgsIhu5RpM2/qhL13b2d5pzXT7YVeGQ8S6OUYb0Y989YEzvid08wFfBrdHY62D5CGbrBrkFIV9QJjkE/7N6GtwkQRQZgY2airJKZxwOyPlJesRGicUUTQQ7Icg1kRB0QQu99rOLbUCSV50de3NYL9+gs22kFOlKOajTqm05nf7F7+sDPyogZjdbASUUA0KDxegmQykMsZEkqSHbhSc4bZYG1HXxQYjwQCK/TZJ+Voc6y7xBOJbS95jnlRSQk5yppoW8rT3b7O/4gKd2RnZQoemCVf1qUJ114O82SX0xip/lnjd core@localhost 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A Docker baseimage, very much in the same vein as Phusion's excellent https://github.com/phusion/baseimage-docker, but for Centos. 2 | 3 | Provides you with: 4 | 5 | - Runit for managing your daemons 6 | - An ssh server, so you can log in 7 | 8 | Build it 9 | -------- 10 | 11 | git clone https://github.com/pokle/centos-baseimage 12 | cd centos-baseimage 13 | ./image/build.sh 14 | 15 | This will produce an image called poklet/centos-baseimage 16 | 17 | Running it 18 | ---------- 19 | This image isn't intended to be run as is - it's meant to be the base image for your own images. Never the less, you can still poke around by: 20 | 21 | ./image/run.sh 22 | 23 | This runs an ephermal container in the foreground. It should print out its IP address when it has finished starting up. Substitute IP-ADDRESS in the following command with that address 24 | 25 | ./image/ssh.sh IP-ADDRESS 26 | 27 | This shell script uses an insecure ssh key to authenticate with your container. 28 | 29 | -------------------------------------------------------------------------------- /image/build/sshd/insecure-key: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIIEpgIBAAKCAQEA0Bd05IOkI/po0PT7cBPgPr2B8YYYBZqIt7db6FmQYLCIbuUa 3 | TNv6oS9d29neac10+2FXhkPEujlGG9GPfPWBM74ndPMBXwa3R2Otg+Qhm6wa5BSF 4 | fUCY5BP+zehrcJEEUGYGNmoqySmccDsj5SXrERonFFE0EOyHINZEQdEELvfazi21 5 | AkledHXtzWC/foLNtpBTpSjmo06ptOZ3+xe/rAz8qIGY3WwElFANCg8XoJkMpDLG 6 | RJKkh24UnOG2WBtR18UGI8EAiv02SflaHOsu8QTiW0veY55UUkJOcqaaFvK092+z 7 | v+ICndkZ2UKHpglX9alCddeDvNkl9MYqf5Z43QIDAQABAoIBAQDK2+MfllmgnVAr 8 | THgF9cppP3N7Eb8/Tzwy5TRa2V1PdSk7+mpePSEimzuDxOv29s0w9t9NS6lv5b+8 9 | BNo99lPDLn/mmbNfgPuRQ9H2vqIo0WnRqVPNG/kwd3GyJ/79WNH80skBqRQW0VLp 10 | ci33CLUVEgrA2rzINt0wnNEj3HCYm1Ka7SDeiZHjwqlS1pEK089E4e3agcpuXGXd 11 | T++2FiMaHMLnK/tDMwM21j8y5kDUh6j9vJoMwDbcdKK7IVjc6xZYmZeLHYY8eP3n 12 | n9lHwiJbDhDAA+M6uy/iiTNSmJm6OEj+U7Ytnk/VcJlWRldf1jPkPl1FRO3z0Ch/ 13 | nD9wmM/dAoGBAPaYl0JmjHE3fy7r0WrGmizIEYR016cbZzkGP7oiMvTqA1f0SKoJ 14 | LambLRtS37IwXysZU4aEs3UREQdNypaJq72nCg7u4IHL6iwvc1xLs86ibNLu9Xti 15 | 3fKqmRQWuRgNlDrl7SUl7RHSrg91K0Fy8U4l+UP6UQozvNg4rxO9sCD3AoGBANgG 16 | 9sFrGphwD/Dk0m2DBoxTOrE3Ct7Pfi9JNUv3M/DHZkamLbIZWa9jYQDyBXj9OYSw 17 | FhO0JXwg7u6oHtRi8xseHDvYxd4VcHKtsxwv/8FZvl8Y2Jl+tlh43Apoo1upqsGb 18 | JFHPhhQZj/bq7x86LxNLP65koPfCcQmQv38s1hPLAoGBAMQyzg4/pzghLqj3aUxq 19 | LZq5p+5aRIapb+xYA3Yl5aMlWXmuW+4llVYfp7jYrDCK+f1Bjko15M6cwI6uHyS8 20 | 7o7bi04sUyYSRwPW0RM7DBm485q0E06TcAG2KEtqdOQlUa226IKo9UE7/c9AqyTM 21 | vh8uaW/jhnz2gycJmoq7XporAoGBAM6CybzY4FG9Pt/wPuEFkmru3XqvvaqF/IDD 22 | oTl/lZ2lYLZFAgXxifTKMd8vfd/NYwDfPBuV6QeijAaFnQM3nGLeA+uKLI1DPX3D 23 | YyedEwcI/Z33KIiDw1kMIH2qzg9AQMZXwv6aPfhU/3Tx3amie4IcO0JBXEe9D0Yv 24 | o4C1oejFAoGBANE3pthmFKCtKjt1E+Zw+Lh+qNhsb4YkmdIZXxow3wzPmbwvTEI/ 25 | /B+w5Adm6DUR+sdG1Ox5YBeRrj53Oa2W6zCtW71701DMSPo0ZQ1f3htlEqI4kUb5 26 | GaDHwthAcT7BNKzDPZPwS+vYBPB2j8ZUB8WRjqoFrpHPhsf3ot/mujMd 27 | -----END RSA PRIVATE KEY----- 28 | --------------------------------------------------------------------------------