Создайте системный модуль в cloud-init и включите его - PullRequest
0 голосов
/ 29 апреля 2018

Я создал следующий системный модуль в файле cloud-init:

- path: /etc/systemd/system/multi-user.target.wants/docker-compose.service
  owner: root:root
  permissions: '0755'
  content: |
      [Unit]
      Description=Docker Compose Boot Up
      Requires=docker.service
      After=docker.service

      [Service]
      Type=simple
      ExecStart=/usr/local/bin/docker-compose -f /opt/data/docker-compose.yml up -d
      Restart=always
      RestartSec=30

      [Install]
      WantedBy=multi-user.target

Когда я пытаюсь запустить

sudo systemctl enable docker-compose.service

для создания символической ссылки я получаю это:

Failed to execute operation: No such file or directory

Однако я уверен, что файл находится под /etc/systemd/system/multi-user.target.wants

1 Ответ

0 голосов
/ 30 апреля 2018

Убедитесь, что каждый файл присутствует и действителен:

 ls -l  /etc/systemd/system/multi-user.target.wants/docker-compose.service
 ls -l /usr/local/bin/docker-compose
 ls -l /opt/data/docker-compose.yml
 systemd-analyze verify /etc/systemd/system/multi-user.target.wants/docker-compose.service

Также рассмотрите время. Даже если файлы существуют после полной загрузки, будет ли /etc/systemd/system/multi-user.target.wants/ существовать при запуске cloud-init?

...