Как загрузить dockerimage в eclipse-che?

Я пытаюсь загрузить образ докера на openshift.io, поэтому я пытаюсь просто использовать «hello-world» в качестве образа докера, это мой файл разработки.

metadata:
  name: test
attributes:
  persistVolumes: 'false'
components:
  - mountSources: true
    endpoints:
      - name: hello
        port: 4200
    memoryLimit: 1Gi
    type: dockerimage
    image: 'hello-world'
    alias: hello-world
apiVersion: 1.0.0

Однако я получаю эту ошибку Error: Failed to run the workspace: "The following containers have terminated: hello-world: reason = 'Completed', exit code = 0, message = 'null'" Этого не происходит с пользовательскими изображениями, предоставленными eclipse, так что мне нужно изменить, чтобы изображение докера работало на openshift.io? насколько я знаю, я не могу редактировать Dockerfile, я могу только вытягивать образы из реестра докеров.


person Rainb    schedule 25.06.2020    source источник


Ответы (2)


Атрибут command образа dockerimage вместе с другими аргументами используется для изменения команды точки входа контейнера, созданного из образа. В Eclipse Che контейнер нужен для бесконечной работы, чтобы можно было подключиться к нему и выполнять в нем произвольные команды в любой момент. Поскольку доступность команды sleep и поддержка аргумента бесконечности для нее различаются и зависят от базового образа, используемого в конкретных образах, Че не может вставить это поведение автоматически самостоятельно. Однако вы можете воспользоваться этой возможностью, например, для запуска необходимых серверов с измененными конфигурациями и так далее.

Чтобы компонент dockerimage имел доступ к исходникам проекта, необходимо установить для атрибута mountSources значение true.

metadata:
  name: test
attributes:
  persistVolumes: 'false'
components:
  - mountSources: true
    endpoints:
      - name: hello
        port: 4200
    memoryLimit: 1Gi
    type: dockerimage
    image: 'hello-world'
    alias: hello-world
    command: ['sleep', 'infinity']
person Amol    schedule 03.08.2021

Это похоже на процесс входа для выходов изображения hello-world. Ваши изображения не должны выходить по умолчанию, или вы должны переопределить команду входа по умолчанию командой, которая не будет выходить в вашем файле разработки. Вы можете попробовать добавить в компонент dockerimage что-то вроде приведенного ниже.

     command: ['tail']
     args: ['-f', '/dev/null']

Ознакомьтесь также с этим примером.

person Gorkem Ercan    schedule 01.07.2020