Создание приложения с помощью CLI
Создать приложение с помощью CLI можно используя следующие компоненты:
Исходный код
Чтобы создать приложения из исходного кода используйте команду
oc new-app
.Команда
oc new-app
автоматически генерирует объекты Опеншифт, которые создают, разворачивают и запускают приложение. Эти объекты создаются в текущем проекте и им присваиваются полученные из репозиториев исходного источника или входных образов сборки:- Build Config
Определяет используемую стратегию, исходное местоположение и выходное местоположение сборки. BuildConfig автоматически определяет, какую стратегию сборки следует использовать ― Pipeline или Source. В случае выбора стратегии Source система автоматически определяет соответствующий образ сборки (builder image).
- Image Stream
Обеспечивает доступ к образам. Для Build Config обычно создаются два Image Stream: один — для представления входных образов, второй ― для предоставления выходных образов.
- Deployment Config
Создается для развертывания выходных данных сборки или указанного образа.
Чтобы создать приложение из локального Git-репозитория, используйте команду
oc new-app /<path to source code>
.Чтобы создать приложение из удаленного Git-репозитория, используйте команду
oc new-app https://github.com/sclorg/cakephp-ex
.Чтобы создать приложение из удаленного приватного Git-репозитория, используйте команду
oc new-app https://github.com/youruser/yourprivaterepo--source-secret=yoursecret
.Примечание
При использовании удаленного приватного Git-репозитория вы можете добавить флаг
--source-secret
, чтобы указать существующий секрет источника, который будет введен в существующий BuildConfig для доступа к репозиторию. Чтобы использовать подкаталог репозитория, добавьте флаг--context-dir
.Чтобы создать приложение из удаленного Git-репозитория и подкаталога, используйте команду
oc new-app https://github.com/sclorg/s2i-ruby-container.git \\--context-dir=2.0/test/puma-test-app
. При указании удаленного URL-адреса укажите ветку Git для использования, добавив<branch_name>
в конец URL-адреса:oc new-app https://github.com/openshift/ruby-hello-world.git#beta4
.Объекты, созданные командой
oc new-app
, обычно получают имена в соответствии с исходным репозиторием или образом, используемым для их создания. Чтобы изменить имя создаваемых объектов, добавьте к командеoc new-app
флаг--name
:oc new-app https://github.com/openshift/ruby-hello-world --name=myapp
Команда
oc new-app
создает объекты в текущем проекте. Чтобы создавать объекты в другом проекте, используйте аргумент-n \--namespace
:oc new-app https://github.com/openshift/ruby-hello-world -n myproject
Image (образ)
Команда
oc new-app
определяет тип образа, указанный в аргументах. Чтобы указать является ли образ контейнерным используйте аргументdocker-image
или Image Stream с аргументом-i \| --image
.Примечание
Если вы указываете образ из локального хранилища Docker, убедитесь, что этот же образ доступен для узлов кластера Опеншифт.
Чтобы создать приложение из образа DockerHubMySQL, используйте команду
oc new-app openshift/mysql:latest
.Чтобы создать приложение из существующего Image Stream или Image StreamTag, используйте команду
oc new-app my-stream:v1
.
Шаблон
Чтобы создать приложение из сохраненного шаблона, используйте команды
oc create -f examples/sample-app/application-template-stibuild.json
иoc new-app ruby-helloworld-sample
Чтобы использовать шаблон в локальной файловой системе, не сохраняя его, добавьте аргумент
-f \| --file
―oc new-app -f examples/sample-app/application-template-stibuild.json
Параметры шаблона
При создании приложения на основе шаблона, для установки необходимых значений параметров, добавьте аргумент
-p \| --param
:oc new-app ruby-helloworld-sample -p ADMIN_USERNAME=admin -p ADMIN_PASSWORD=mypassword
При создании экземпляра шаблона сохраните параметры в файле, а затем укажите этот файл с аргументом
--param-file
. Если необходимо просмотреть заданные параметры, используйте--param-file = -:
cat helloworld. params ADMIN_USERNAME=admin ADMIN_PASSWORD=mypassword oc new-app ruby-helloworld-sample --param-file=helloworld.params cat helloworld.params \| oc new-app ruby-helloworld-sample --param-file=-
Определение переменной среды сборки
Чтобы создать приложение из шаблона, используйте аргумент
-e \| --env
для передачи переменной среды в контейнер приложения:oc new-app openshift/postgresql-92-centos7 \\ -e POSTGRESQL_USER=user \\ -e POSTGRESQL_DATABASE=db \\ -e POSTGRESQL_PASSWORD=password
Чтобы посмотреть все существующие переменные среды, используйте аргумент
--env-file
:cat postgresql.env POSTGRESQL_USER=user POSTGRESQL_DATABASE=db POSTGRESQL_PASSWORD=password oc new-app openshift/postgresql-92-centos7 --env-file=postgresql.env
Чтобы задать переменные среды, используйте аргумент
--env-file = -
:cat postgresql.env \| oc new-app openshift/postgresql-92-centos7 --env-file=-
Примечание
Любые объекты BuildConfig, созданные как часть нового приложения, не обновляются с помощью переменных средсодержащие аргумент
-e \| --env
или--env-file
.
Указание переменной среды сборки
При создании приложений из шаблона, для передачи переменных сред в контейнер, используйте аргумент
--build-env
:oc new-app openshift/ruby-23-centos7 \\ --build-env HTTP_PROXY=http://myproxy.net:1337/ \\ --build-env GEM_HOME=~/. gem
Чтобы просмотреть все переменные среды, используйте аргумент
--build-env-file
:cat ruby.env HTTP_PROXY=http://myproxy.net:1337/ GEM_HOME=~/.gem oc new-app openshift/ruby-23-centos7 --build-env-file=ruby.env
Чтобы задать переменные среды, используйте аргумент
--build-env-file=-
:cat ruby.env \| oc new-app openshift/ruby-23-centos7 --build-env-file=-
Указание меток
Чтобы добавить метки к объектам приложения, созданного из шаблона, используйте аргумент
-l \| --label
. Метки позволяют легко выбирать, настраивать и удалять объекты, связанные с приложением:oc new-app https://github.com/openshift/ruby-hello-world -l name=hello-world