не удается развернуть репозиторий git в экземпляре dokku (фатально: {reponame} не является репозиторием git)

Я пытаюсь развернуть свое приложение, которое находится в моем локальном репозитории git, в моем экземпляре dokku в digitalocean.

Файл зоны

$ORIGIN mydomain.com.
$TTL 1800
...
mydomain.com. 1800 IN A 11.22.33.44
www.mydomain.com. 1800 IN CNAME mydomain.com.
*.mydomain.com. 1800 IN A 11.22.33.44
test.mydomain.com. 1800 IN A 11.22.33.44

Я намерен развернуть свое приложение на test.mydomain.com

настройка докку

Я использовал образ dokku в digitalocean для настройки сервера, который в настоящее время работает на dokku v0.4.15, и попытался развернуть свое приложение в соответствии с руководство, которое явно устарело, однако я не нашел более свежего .

настройка SSH

Я также настроил ключи SSH и файл конфигурации, поэтому я могу войти в свой экземпляр dokku через SSH как для пользователей root, так и для докку:

ssh {username}@test.localhome.ch // works

локальный файл конфигурации ssh

Host          mydomain.com test.mydomain.com
        HostName       11.22.33.44
        IdentityFile   ~/.ssh/mydomain
        PreferredAuthentications publickey

развертывание

Когда я пытаюсь развернуть свой репозиторий git:

git remote add dokku [email protected]:test
git push dokku master

это бросило бы меня

fatal: 'test' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Что я пропустил?

Изменить 1

Я также подключился к серверу по ssh и добавил приложение dokku.

ssh [email protected]
dokku apps:create test

Приложение, кажется, было правильно добавлено на стороне сервера.

dokku@mydomain:~$ dokku apps
=====> My Apps
test

.. тем не менее, толчок все еще терпит неудачу.


person Ronin    schedule 27.03.2016    source источник


Ответы (2)


Мне не удалось решить проблему с установкой dokku в один клик на digitalocean, поэтому вместо этого мне пришлось настраивать экземпляр вручную, что было не так уж сложно.

Настройка Докку

  1. Создайте новую каплю Ubuntu 14.04.4 x64.
  2. Пока не настраивайте RSA, используйте аутентификацию по паролю для входа в дроплет.
  3. Установите докку:

    wget https://raw.githubusercontent.com/dokku/dokku/v0.5.2/bootstrap.sh sudo DOKKU_TAG=v0.5.2 bash bootstrap.sh

Настройка RSA

Предположение. Мы используем не ключ RSA по умолчанию (обычно .ssh/id_rsa.pub), а пользовательский: .ssh/custom.pub

  1. добавьте открытый ключ, используя следующую однострочную строку

    кошка ~/.ssh/custom.pub | ssh [email protected] "sudo sshcommand acl-add dokku custom-identifier"

Для получения дополнительной информации см. эта страница

Развернуть репозиторий

Разверните репозиторий. Для быстрого тестирования можно использовать этот пример. Кроме того, DNS необходимо настроить соответствующим образом (если имя приложения test, то test.mydomain.com должно указывать на IP-адрес вашего сервера, как также показано в ОП).

person Ronin    schedule 28.03.2016
comment
Я вручную добавил свой открытый ключ в authorized_hosts, прежде чем приступать к настройке, и это все испортило. Я использовал ваши комментарии как подсказку и смог удалить тот, который был изначально. Теперь он работает через пользовательскую команду, как и предполагалось. Спасибо! - person jocull; 18.05.2016
comment
Просто отмечу: у меня это произошло недавно с Dokku 0.7.2 16.04. - person TheUnknownGeek; 27.01.2017

Самые последние инструкции находятся на dokku.viewdocs.io: Развертывание в Dokku.

Создайте приложение на хосте Dokku. Вам нужно будет подключиться к хосту по ssh, чтобы выполнить эту команду.

# on your dokku host
dokku apps:create ruby-rails-sample

(В вашем случае вы должны создать «test»)

Этого должно быть достаточно, чтобы создать удаленный репозиторий git, на который вы можете нажать.

person VonC    schedule 27.03.2016
comment
Я уже пробовал это, но это все еще приносит мне то же исключение - person Ronin; 27.03.2016
comment
@Ronin, зачем нажимать на test.domain.com? Почему не mydomain.com. Перепроверьте инструкции на странице dokku.viewdocs.io/dokku/application-deployment. - person VonC; 27.03.2016
comment
Я попробовал оба, просто чтобы быть уверенным, потому что информация, которую я нашел, была запутанной. Ни тот, ни другой не работали. Вот результат git remote -v: dokku [email protected]:test (fetch) dokku [email protected]:test (push) origin https://github.com/danielres/minimal-nodejs-express-dokku-example.git (fetch) origin https://github.com/danielres/minimal-nodejs-express-dokku-example.git (push) - person Ronin; 27.03.2016
comment
@Ronin URL-адрес для отправки кажется неправильным. Просто следуйте dokku.viewdocs.io/dokku/application-deployment, заменив ruby- на рельсах с вашим тестовым репозиторием - person VonC; 27.03.2016
comment
Я выполнил все шаги 1: 1, но все равно получил то же исключение - person Ronin; 27.03.2016
comment
@Ronin Вам нужно удалить ключи в неправильном формате в файле /home/dokku/.ssh/authorized_keys. Или просто очистите файл и используйте однострочник, чтобы добавить свой локальный открытый ключ. cat ~/.ssh/custom.pub | ssh [email protected] "sudo sshcommand acl-add dokku custom-identifier" - person Sheng; 29.12.2016