{"id":234,"date":"2025-11-04T17:12:16","date_gmt":"2025-11-04T20:12:16","guid":{"rendered":"https:\/\/thiagoldaniel.com.br\/?p=234"},"modified":"2025-11-04T17:12:16","modified_gmt":"2025-11-04T20:12:16","slug":"fazendo-com-que-um-container-docker-seja-executado-como-servico-opensign","status":"publish","type":"post","link":"https:\/\/thiagoldaniel.com.br\/index.php\/2025\/11\/04\/fazendo-com-que-um-container-docker-seja-executado-como-servico-opensign\/","title":{"rendered":"Fazendo com que um Container Docker Seja executado como servi\u00e7o (OpenSign)."},"content":{"rendered":"\n<p>Ol\u00e1 pessoal, explico neste posto em como fazer com que os containers do <strong>OpenSign<\/strong> (ou qualquer outro stack Docker Compose) iniciem automaticamente como <strong>servi\u00e7o do sistema<\/strong>, de forma que subam sozinhos no boot (ex: ap\u00f3s reboot do servidor).<\/p>\n\n\n\n<p>Abaixo segue o passo a passo completo e validado para <strong>Ubuntu Server 22.04+<\/strong>:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Criar um arquivo systemd para o Docker Compose<\/h2>\n\n\n\n<p>Crie o arquivo de unidade:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/systemd\/system\/opensign.service\n<\/code><\/pre>\n\n\n\n<p>Cole o conte\u00fado abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Unit]\nDescription=OpenSign Docker Compose Service\nRequires=docker.service\nAfter=docker.service network.target\n\n&#91;Service]\nType=oneshot\nRemainAfterExit=yes\nWorkingDirectory=\/opt\/opensign\nExecStart=\/usr\/bin\/docker compose up -d\nExecStop=\/usr\/bin\/docker compose down\nTimeoutStartSec=0\n\n&#91;Install]\nWantedBy=multi-user.target\n<\/code><\/pre>\n\n\n\n<p>\ud83d\udd39 Ajuste o caminho de <code>WorkingDirectory<\/code> para o local onde est\u00e1 o seu <code>docker-compose.yml<\/code> (por exemplo <code>\/root\/OpenSign<\/code> ou <code>\/srv\/opensign<\/code>).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Ativar e iniciar o servi\u00e7o<\/h2>\n\n\n\n<p>Execute:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload\nsudo systemctl enable opensign.service\nsudo systemctl start opensign.service\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Testar o comportamento<\/h2>\n\n\n\n<p>Verifique o status:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status opensign.service\n<\/code><\/pre>\n\n\n\n<p>Simule um reboot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo reboot\n<\/code><\/pre>\n\n\n\n<p>Ap\u00f3s o boot, confirme se os containers subiram:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps\n<\/code><\/pre>\n\n\n\n<p>Eles devem aparecer em execu\u00e7\u00e3o (<code>Up ...<\/code>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Logs e manuten\u00e7\u00e3o<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ver logs do servi\u00e7o: <code>journalctl -u opensign.service -f<\/code><\/li>\n\n\n\n<li>Parar o servi\u00e7o manualmente: <code>sudo systemctl stop opensign.service<\/code><\/li>\n\n\n\n<li>Reiniciar manualmente: <code>sudo systemctl restart opensign.service<\/code><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1 pessoal, explico neste posto em como fazer com que os containers do OpenSign (ou qualquer outro stack Docker Compose) iniciem automaticamente como servi\u00e7o do sistema, de forma que subam sozinhos no boot (ex: ap\u00f3s reboot do servidor). Abaixo segue o passo<\/p>\n<p class=\"link-more\"><a class=\"myButt three\" href=\"https:\/\/thiagoldaniel.com.br\/index.php\/2025\/11\/04\/fazendo-com-que-um-container-docker-seja-executado-como-servico-opensign\/\">Leia Mais&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72,86],"tags":[76,74,16,87,17],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-docker","category-opensign","tag-compose","tag-docker","tag-linux","tag-opensign","tag-sistemas-operacionais"],"_links":{"self":[{"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":1,"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/posts\/234\/revisions\/235"}],"wp:attachment":[{"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagoldaniel.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}