скрипт на питоне в докере, то правильный способ: создать Dockerfile, в нем прописать в RUN установку всех модулей, например RUN pip install requests, и запускать каждый раз так - sudo docker run scriptname?
И оформить в симпатичный docker@appname.service например.
Например пример. # # Docker aware Socks5 2 OpenVPN services # [Unit] Description=Dockerized Socks5 to %i OpenVPN service DefaultDependencies=no After=docker.service Requires=docker.service [Service] EnvironmentFile=-/usr/local/lib/openvpn/%i.env Restart=always ExecStartPre=-/usr/bin/docker stop %i ExecStartPre=-/usr/bin/docker rm %i ExecStart=/usr/bin/docker run --name %i --rm --device=/dev/net/tun --cap-add=NET_ADMIN -v /usr/local/lib/openvpn:/vpn:ro -e OPENVPN_CONFIG=/vpn/%i.ovpn -p "${PORT}":1080 curve25519xsalsa20poly1305/openvpn ExecStop=/usr/bin/docker stop %i WorkingDirectory=/usr/local/lib/openvpn #Type=forking #RemainAfterExit=no [Install] WantedBy=Multi-User.target%
Углуби понимание понятий контейнер и образ
Чтобы его запускал системд
Вырубите его срочно, он упал в бесконечный цикл!
Берём оффдоку и читаем, что таки да. Можно рестартовать контейнеры (кстати по дефолту не рестартуем), но можно и... Use a process manager If restart policies don’t suit your needs, such as when processes outside Docker depend on Docker containers, you can use a process manager such as upstart, systemd, or supervisor instead. Warning Do not try to combine Docker restart policies with host-level process managers, because this creates conflicts. To use a process manager, configure it to start your container or service using the same docker start or docker service command you would normally use to start the container manually. Consult the documentation for the specific process manager for more details.
Обсуждают сегодня