# -*- coding: utf-8 -*- LXC_CONTAINER = '''# Image name lxc.uts.name = {name} # Network lxc.net.0.type = veth lxc.net.0.link = lxcbr0 lxc.net.0.flags = up lxc.net.0.ipv4.address = {ipv4}/16 lxc.net.0.ipv4.gateway = 172.17.0.1 # Volumes lxc.rootfs.path = /var/lib/lxc/{name}/rootfs # Mounts lxc.mount.entry = shm dev/shm tmpfs rw,nodev,noexec,nosuid,relatime,mode=1777,create=dir 0 0 lxc.mount.entry = /etc/hosts etc/hosts none bind,create=file 0 0 lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind,create=file 0 0{mounts} # Init lxc.init.uid = {uid} lxc.init.gid = {gid} lxc.init.cwd = {cwd} lxc.init.cmd = {cmd} # Environment lxc.environment = PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin{env} # Halt lxc.signal.halt = {halt} # Log lxc.console.size = 1MB lxc.console.logfile = /var/log/lxc/{name}.log # ID map lxc.idmap = u 0 100000 65536 lxc.idmap = g 0 100000 65536 # Hooks lxc.hook.pre-start = /usr/bin/lxcmgr container prepare {layers} lxc.hook.post-stop = /usr/bin/lxcmgr container cleanup # Other lxc.arch = linux64 lxc.cap.drop = sys_admin lxc.include = /usr/share/lxc/config/common.conf lxc.include = /usr/share/lxc/config/userns.conf ''' SERVICE = """#!/sbin/openrc-run description="{app} {container} LXC container" depend() {{ need cgroups {depends} }} start() {{ lxc-start {container} }} {start_post} stop() {{ lxc-stop {container} }} """