That might make the most sense.

RHEL7 == Base Image

RHEL7Systemd == BaseImage + Config to run systemd as pid1.




On 10/21/2016 12:26 PM, Daniel Riek wrote:
> Question: should we separate a true minimal base image that as default
> run's a shell and the default iamge that runs systemd and behaves more
> like a linux system?
>
> On Fri, Oct 21, 2016 at 12:02 PM, Clayton Coleman <ccole...@redhat.com
> <mailto:ccole...@redhat.com>> wrote:
>
>     This seems like a breaking API change (as you note) for downstream
>     consumers.  Seems more correct to create a new image for that.
>
>     > On Oct 21, 2016, at 11:50 AM, Daniel J Walsh <dwa...@redhat.com
>     <mailto:dwa...@redhat.com>> wrote:
>     >
>     > If we make this change, we would want to do it in Fedora and
>     Centos also.
>     >
>     > https://bugzilla.redhat.com/show_bug.cgi?id=1387282
>     <https://bugzilla.redhat.com/show_bug.cgi?id=1387282>
>     >
>     > The benefits of making this change are that people new to containers
>     > could follow a simple workflow similar to what the do on the OS,
>     where
>     > all they need to do is install an rpm service and enable and it
>     is ready
>     > to go.
>     >
>     >
>     > # cat Dockerfile
>     >
>     > FROM rhel7
>     >
>     > RUN dnf -y install httpd; systemctl enabled httpd
>     >
>     > ADD MYAPP /
>     >
>     >
>     > # docker build -t MYAPP .
>     >
>     >
>     > And they are done.  Now if they run their container
>     >
>     > docker run -d MYAPP
>     >
>     > And their app runs with systemd/journald and httpd with their
>     app runnin
>     > inside of it.
>     >
>     >
>     > For users who don't want to use systemd, they would just
>     override the
>     > CMD field and their container would work fine.
>     >
>     > Since the current default is bash, they would need to do this
>     anyways.
>     >
>     >
>     > A couple of things will break,
>     >
>     > docker run -ti rhel7
>     >
>     > Currently runs a shell.  With the new change, systemd would start up
>     > inside of the contaienr.
>     >
>     >
>     > Users who want a shell would need to execute
>     >
>     > docker run -ti rhel7 /bin/sh
>     >
>     > (I always do this anyways, but I guess some people do not)
>     >
>     >
>     > The other big issue is on stopping of containers. docker stop
>     currently
>     > defaults to sending SIGTERM to the pid 1 of the container.
>     >
>     > systemd requires that SIGRTMIN+3 be sent to it to close down
>     properly.
>     > If we want to have systemd work by default, we would
>     >
>     > need to change the default SIGSTOP of the base image.  This
>     means any
>     > application based on the base image that does not
>     >
>     > override the SIGSTOP would get SIGRTMIN+3.  Most apps will die
>     when they
>     > get this signal, but if the App had a signal handler for
>     >
>     > SIGTERM, the signal handler will not work correctly.
>     >
>     >
>     > Adding
>     >
>     > SIGSTOP SIGTERM
>     >
>     > to a Dockerfile would fix the issue, but it will cause unexpected
>     > breakage.  I don't see an easy solution for this.
>     >
>     >
>     >
>
>
>
>
> -- 
> Daniel Riek <r...@redhat.com <mailto:r...@redhat.com>>
> * Sr. Director Systems Design & Engineering 
> * Red Hat Inc, Tel. +1-617-863-6776

Reply via email to