From: W. Trevor King Date: Fri, 18 Jul 2014 18:26:29 +0000 (-0700) Subject: gentoo-openrc: Break out OpenRC configuration into a separate Dockerfile X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4c5d9aafc9f2c3cb1feb0b7f8ce6d96b64827973;p=dockerfile.git gentoo-openrc: Break out OpenRC configuration into a separate Dockerfile Gentoo users could prefer another process manager, and we want them to have a clean location for them to swap in their systemd (or whatever) Dockerfile. The net stuff is new, and with it we no longer get issues like: * Bringing up network interface lo ... SIOCSIFADDR: Operation not permitted SIOCSIFFLAGS: Operation not permitted SIOCSIFNETMASK: Operation not permitted SIOCADDRT: Operation not permitted [ !! ] * ERROR: loopback failed to start --- diff --git a/README.md b/README.md index fb83730..8db851b 100644 --- a/README.md +++ b/README.md @@ -20,26 +20,27 @@ The dependency graph is: `-- gentoo-portage (adds portage directory) `-- gentoo-utc (adds a system timezone) `-- gentoo-en-us (adds locale) - `-- gentoo-syslog (adds syslog-ng and associates) - |-- buildbot (adds a Buildbot master and slave) - |-- docker-registry (adds a Docker registry server) - |-- gentoo-layman (adds layman for Gentoo overlays) - | `-- package-cache (adds a package-cache proxy) - |-- gentoo-node (adds Node and npm) - | `-- hubot (adds hubot with an IRC adapter) - |-- irker (adds irker, and spawns irkerd by default) - |-- memcached (adds Memcached) - |-- nginx (adds Nginx) - | |-- nginx-proxy (SSL/TLS proxying via SNI) - | |-- kibana (adds Kibana) - | `-- kibana-azure (adds Azure's Kibana) - |-- ngircd (adds ngIRCd) - |-- postgresql (adds PostgreSQL) - |-- redis (adds Redis) - |-- salt-minion (adds a Salt Stack minion) - |-- stunnel (adds stunnel) - `-- gentoo-java (adds IcedTea) - `-- elasticsearch (adds Elasticsearch) + `-- gentoo-openrc (configure OpenRC for Docker) + `-- gentoo-syslog (adds syslog-ng and associates) + |-- buildbot (adds a Buildbot master and slave) + |-- docker-registry (adds a Docker registry server) + |-- gentoo-layman (adds layman for Gentoo overlays) + | `-- package-cache (adds a package-cache proxy) + |-- gentoo-node (adds Node and npm) + | `-- hubot (adds hubot with an IRC adapter) + |-- irker (adds irker, and spawns irkerd by default) + |-- memcached (adds Memcached) + |-- nginx (adds Nginx) + | |-- nginx-proxy (SSL/TLS proxying via SNI) + | |-- kibana (adds Kibana) + | `-- kibana-azure (adds Azure's Kibana) + |-- ngircd (adds ngIRCd) + |-- postgresql (adds PostgreSQL) + |-- redis (adds Redis) + |-- salt-minion (adds a Salt Stack minion) + |-- stunnel (adds stunnel) + `-- gentoo-java (adds IcedTea) + `-- elasticsearch (adds Elasticsearch) Run: diff --git a/build.sh b/build.sh index da794f1..7381d10 100755 --- a/build.sh +++ b/build.sh @@ -45,6 +45,7 @@ REPOS="${REPOS:- gentoo-portage gentoo-utc gentoo-en-us + gentoo-openrc gentoo-syslog gentoo-java gentoo-layman diff --git a/gentoo-openrc/Dockerfile.template b/gentoo-openrc/Dockerfile.template new file mode 100644 index 0000000..b1f88dc --- /dev/null +++ b/gentoo-openrc/Dockerfile.template @@ -0,0 +1,36 @@ +# Copyright (C) 2014 W. Trevor King +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +FROM ${NAMESPACE}/gentoo-portage:${TAG} +MAINTAINER ${MAINTAINER} + +RUN sed -i 's/#rc_sys=""/rc_sys="lxc"/g' /etc/rc.conf + +# Networking is setup by Docker +RUN echo 'rc_provide="loopback net"' >> /etc/rc.conf +RUN rc-update delete loopback boot +RUN rc-update delete netmount default + +# Log boot process to /var/log/rc.log +RUN sed -i 's/^#\(rc_logger="YES"\)$/\1/' /etc/rc.conf diff --git a/gentoo-portage/Dockerfile.template b/gentoo-portage/Dockerfile.template index 00204ff..5a08724 100644 --- a/gentoo-portage/Dockerfile.template +++ b/gentoo-portage/Dockerfile.template @@ -24,7 +24,6 @@ FROM ${NAMESPACE}/gentoo:${TAG} MAINTAINER ${MAINTAINER} -RUN sed -i 's/#rc_sys=""/rc_sys="lxc"/g' /etc/rc.conf RUN echo 'GENTOO_MIRRORS="http://distfiles.gentoo.org/"' >> /etc/portage/make.conf #RUN echo 'SYNC="rsync://rsync.us.gentoo.org"' >> /etc/portage/make.conf RUN mkdir -p /usr/portage diff --git a/gentoo-syslog/Dockerfile.template b/gentoo-syslog/Dockerfile.template index 04aaf01..5954635 100644 --- a/gentoo-syslog/Dockerfile.template +++ b/gentoo-syslog/Dockerfile.template @@ -22,7 +22,7 @@ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -FROM ${NAMESPACE}/gentoo-en-us:${TAG} +FROM ${NAMESPACE}/gentoo-openrc:${TAG} MAINTAINER ${MAINTAINER} #VOLUME ["${PORTAGE}:/usr/portage:ro", "${PORTAGE}/distfiles:/usr/portage/distfiles:rw"] RUN emerge -v sys-process/vixie-cron app-admin/syslog-ng app-admin/logrotate @@ -39,7 +39,4 @@ RUN sed -i 's/^\(.*\)system(); \(.*\)/\1\2/' /etc/syslog-ng/syslog-ng.conf # Enable /dev/log RUN sed -i 's|^\(.* internal();\)\(.*\)|\1 unix-stream("/dev/log");\2|' /etc/syslog-ng/syslog-ng.conf -# Log boot process to /var/log/rc.log -RUN sed -i 's/^#\(rc_logger="YES"\)$/\1/' /etc/rc.conf - CMD rc default && exec tail-syslog