We are talking about Docker containers as sysdig, consul, fluentd, mesos-slave, etc. that we are running on almost all machines.

Currently we are using Ubuntu's Upstart and CoreOS's Fleetctl. We're migrating to Ubuntu 18.04 LTS and currently considering whether to convert the configuration to:

  • Systemd or
  • Docker-compose

Systemd can do health checks and automatically bring back processes that died back online. It's also the most similar to Upstart that we use heavily. Our Upstart configuration files are generated from cloud-config like this:

- >
    /usr/local/bin/generate-docker-upstart fluentd registry/fluentd:1.0.1
    -e HOST=elasticsearch
    -e PORT=9200
    -e INDEX=fluentd
    -e NODE=`hostname -s`
    -e ROLE=app
    -e ENVIRONMENT={{Ref:Environment}}
    -e TENANT={{Ref:Tenant}}
    -p 24224:24224
    --name \$NAME \$IMAGE

We use AWS CloudFormation to bring the virtual machines online.

We cannot use a real container orchestration framework (we already use Marathon/Mesos) because these services have to be running on each host and before Marathon/Mesos run.

What solution makes most sense? Convert these files to systemd or start using docker-compose, despite already using Marathon on Mesos?

  • 1
    If you do decide to use systemd, make sure to group them into a .target as you will probably want to address them all at once without expressly enumerating them at some point. (man 5 systemd.target) Sep 24 '18 at 22:45
  • @JiriKlouda Could you post an answer?
    – 030
    Dec 23 '19 at 9:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.