Откройте порт для приложения через wercker.yml

Я настроил свой wercker.yml для использования блока NodeJS, установил StrongLoop и запустил npm-install следующим образом:

box: nodesource/node:trusty
build:
  steps:
    - script:
        code: |
          npm install -g strongloop
    - npm-install

Я хотел бы взять полученный контейнер, запустить его на своем сервере и запустить свое приложение. Однако по умолчанию необходимый порт (3000) не отображается при загрузке и запуске контейнера. Есть ли способ открыть этот порт через конфигурацию wercker, или мне нужно будет либо подготовить свою собственную коробку с StrongLoop и открытым портом 3000 для использования в wercker, либо использовать полученный контейнер из wercker и использовать Dockerfile, чтобы открыть его после. Заранее спасибо.


person dpalmer    schedule 23.06.2015    source источник
comment
Несколько несвязанный, но установка всего набора инструментов strongloop кажется немного чрезмерной для контейнера приложения. Вам нужен только strong-supervisor, если все, что вы делаете, это запускаете slc run, просто измените его на sl-run. И вам ничего из этого не нужно, если вы не используете slc для запуска своего приложения.   -  person Ryan Graham    schedule 25.06.2015
comment
Спасибо за чаевые. Это сократило мою сборку на несколько минут.   -  person dpalmer    schedule 30.06.2015


Ответы (1)


Похоже, что в настоящее время wercker не поддерживает настройку этого аспекта контейнера/образа.

Тем не менее, нет необходимости настраивать открытые порты в самом образе, поскольку вы можете сделать это во время выполнения/запуска:

docker run --detach --publish 3000:3000 --env PORT=3000 image-name

В приведенном выше примере порт 3000 открыт, а для переменной среды $PORT внутри контейнера задано значение 3000, что является распространенным способом указать приложению прослушивать порт 3000.

person Ryan Graham    schedule 25.06.2015