Excerpts from Lennart Poettering's message of 2015-06-15 00:32:09 +0200:
> 
> Nope, we deliberately clean up the env block we pass to services.
> 

Mmmh, would it possible to add some kind of a whitelist for environment
variables to the systemd- and/or service.unit-configuration for
variables which are passed on to services? Maybe something like
http://httpd.apache.org/docs/2.2/mod/mod_env.html#passenv.

This would make things a lot of easier when containers are used with
systemd as process supervisor. At least for Ruby on Rails or other
software which makes use of environment variables for configuration.

This way I can build a single image I can use in different environments
just by setting environment files. Does that make sense to you?

Outer Service Units
  # Service 1
  ExecStart="docker run -e RAILS_ENV=production -e 
DATABASE_URL="postgresql://localhost/app_production centos-rails"
  
  # Service 2
  ExecStart="docker run -e RAILS_ENV=staging -e 
DATABASE_URL="postgresql://localhost/app_staging centos-rails"

Inner Service Units (Example)
  PassEnv="RAILS_ENV"
  ExecStart="RAILS_ENV=${RAILS_ENV} /srv/app/bin/rails"


> You can reimport the env vars though by reading them from
> /proc/1/environ. Needs some manual hackery though... 

Just for the records: Or bind mount an environment file, though I don't
like it. It looks like a hack, too.

  ExecStart="docker run -v /opt/app/rails_env:/etc/default/app/environment.conf"

/pp
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to