Как сохранить синхронизацию файлов в OpenShift?

Для OpenShift:

Я создал тестовый каталог в ~ app-root/repo/data.. У меня также есть локальный каталог «myapp'/data». Я могу перейти на OpenShift с помощью git. Мои тестовые файлы загружаются нормально, что я могу проверить с помощью ssh.

Теперь я создаю файл с помощью nano или vim удаленно --file с именем remoteFileVim Файлы существуют в каталоге repo/data. Когда я делаю git pull локально, я не вижу этот файл remoteFileVim.

Я создал второй файл в app-root/data под названием secondVimFile, как мне перетащить этот файл на локальный компьютер. Могу ли я использовать git? У меня есть python 2.6, cron, mysql, загруженные на Openshift, если это поможет.


person Merlin    schedule 04.01.2013    source источник


Ответы (3)


Если вы можете подключиться к машине по ssh, вы сможете читать или записывать файлы, используя scp.

Простое размещение новых файлов в папке ~/app-root/repo/ вашего Openshift gear не приведет к включению (регистрации) файлов в вашу систему контроля версий. Как правило, вы должны использовать git commit и git push для внесения большинства изменений в ваше приложение локально, а затем вносить эти изменения в свое устройство OpenShift.

Если вашему приложению требуется дисковое пространство или доступ к дополнительному содержимому, такому как секретные токены и ключи, которые вы предпочитаете держать подальше от исходного кода — вы можете поместить это содержимое в свою папку ~/app-root/data. На этот каталог не влияют развертывания, и он был выделен для хранения вашего приложения на локальном диске.

person ʀɣαɳĵ    schedule 05.01.2013

Проверьте этот блог: https://community.jboss.org/people/ozizka/blog/2013/01/06/openshift--how-to-make-uploaded-files-public

Код приложений OpenShift загружается с помощью Git. Любые изменения в каталоге репозитория воссоздаются после нажатия. Поэтому хранить загруженные файлы там не получится.

Единственный постоянный каталог, который вы можете использовать, это ../data. Полный путь хранится в переменной окружения $OPENSHIFT_DATA_DIR. Однако этот каталог не является общедоступным, поэтому URL-адрес туда не ведет.

Решение довольно простое — просто создайте симлинк. Вот пример для PHP. Войдите на свой компьютер через SSH и запустите:

mkdir app-root/data/photos
cd app-root/repo/php    #  php/ is the only publicly accessible directory (by default, not sure if not changeable in .htaccess).
ln -s ../../data/photos photos

Это делает содержимое в ../data/photos общедоступным по адресу http://myapp-myaccount.rhcloud.com/photos/ . Каталог для управления файлами можно указать с помощью $_ENV['OPENSHIFT_DATA_DIR'].

person Ondra Žižka    schedule 07.01.2013

все, что вы делаете удаленно (включая SSH), происходит в корневом каталоге приложения. GIT использует развертывание приложений. вам нужно скопировать файлы из корневого каталога приложения на свой компьютер, а затем отправить их с помощью GIT. ТАКЖЕ, НИ /data, ни масштаб приложения. масштабируются только развертывания приложений> текущие.

person brainstormtrooper    schedule 26.05.2014