On Fri, Oct 21, 2016 at 9:29
AM, Daniel J Walsh <dwalsh redhat com>
wrote:
That might make the most sense.
RHEL7 == Base Image
RHEL7Systemd == BaseImage + Config to run
systemd as pid1.
+1, maybe call it RHEL7-system image?
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 <ccoleman 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 <dwalsh 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
>
> 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.
>
>
>