Docker: chmod: не может получить доступ к 'chmod': нет такого файла или каталога - PullRequest
0 голосов
/ 04 мая 2020

Я создаю Rails приложение на Ubuntu 18.04 и пытаюсь настроить развертывание приложения с помощью docker.

У меня 2 точки входа файлы:

  • docker / entrypoints / docker -entrypoint. sh
  • docker / entrypoints / sidekiq-entrypoint. sh

Обычно, чтобы сделать файлы исполняемыми, мне нужно запустить следующие команды в терминале моего хост-компьютера:

chmod +x docker/entrypoints/docker-entrypoint.sh
chmod +x docker/entrypoints/sidekiq-entrypoint.sh

Однако я хотел бы сделать это возможным в Dockerfile, без необходимости всегда делать это на терминал хост-машины.

Для этого я добавил команду ниже в Dockerfile:

RUN chmod +x docker/entrypoints/docker-entrypoint.sh \
    chmod +x docker/entrypoints/sidekiq-entrypoint.sh
ENTRYPOINT ["./docker/entrypoints/docker-entrypoint.sh"]

Но затем я столкнулся с этой ошибкой:

chmod : нет доступа к 'chmod': нет такого файла или каталога

chmod: нет доступа к '+ x': нет такого файла или каталога

ОШИБКА: не удалось создать службу 'app': команда '/ bin / sh - c chmod + x docker / entrypoints / docker -entrypoint. sh chmod + x docker / entrypoints / sid ekiq-entrypoint. sh 'вернул ненулевой код: 1

Я пробовал несколько решений, но пока ни одно из них не сработало. Мы будем рады любой форме помощи.

1 Ответ

0 голосов
/ 04 мая 2020

Вот как я это решил :

Просто измените команду в Dockerfile с:

RUN chmod +x docker/entrypoints/docker-entrypoint.sh \
    chmod +x docker/entrypoints/sidekiq-entrypoint.sh
ENTRYPOINT ["./docker/entrypoints/docker-entrypoint.sh"]

на эту:

RUN ["chmod", "+x", "docker/entrypoints/docker-entrypoint.sh"] \
    ["chmod", "+x", "docker/entrypoints/sidekiq-entrypoint.sh"]
ENTRYPOINT ["./docker/entrypoints/docker-entrypoint.sh"]

Вот и все.

Надеюсь, это поможет

...