параметр сработал.

ибудь успешно докеризировать приложение Loopback-4 (lb4)? Я установил приложение на основе lb4 и пытаюсь его докеризовать, но, хотя Docker, кажется, запускает приложение, его нет на моем локальном хосте.

Шаги, которые я сделал:

Настройка Loopback 4 на основе приложения локальноСоздать Dockerfile (кодВот)(перейдите в каталог, где находится Dockerfile) Build: сборка docker -t lb4.Выполнить: Docker Run -P 3000: 3000 фунтов4

Но приложение не отображается наHTTP: // локальный: 3000 Выход из запуска контейнера:

[email protected] prestart / usr / src / appnpm run build

[email protected] build / usr / src / app lb-tsc es2017 --outDir dist

[email protected] Запустите узел / usr / src / app.

Сервер работает наhttp://127.0.0.1:3000 Пытатьсяhttp://127.0.0.1:3000/ping

РЕДАКТИРОВАТЬ

Для сохранения вопроса здесь вставлен соответствующий код в репо (шаг 2),

// index.js
const application = require('./dist');
module.exports = application;
if (require.main === module) {
  // Run the application
  const config = {
    rest: {
      port: +process.env.PORT || 3000,
      host: process.env.HOST || 'localhost',
      openApiSpec: {
        // useful when used with OASGraph to locate your application
        setServersFromRequest: true,
      },
    },
  };
  application.main(config).catch(err => {
    console.error('Cannot start the application.', err);
    process.exit(1);
  });
}
 Henry13 дек. 2018 г., 13:04
Убедитесь, что ваше приложение в контейнере связано со всеми IP-адресами, а не только с обратной связью (127.0.0.1). Адрес обратной связи не виден снаружи контейнера.
 Siyu13 дек. 2018 г., 13:14
ваш тег в build - это sample-lb4, а образ вашего запускаlb4, опечатка?
 ilusi13 дек. 2018 г., 15:25
@ Сию опечатка исправлена.
 Igor Litvinovich13 дек. 2018 г., 12:44
пожалуйста, сделайдокер PS и поделитесь результатом
 ilusi13 дек. 2018 г., 15:24
@IgorCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ecde114cd35 lb4 "npm start" 2 seconds ago Up 1 second 0.0.0.0:3000->3000/tcp relaxed_minsky

Ответы на вопрос(1)

Решение Вопроса

в вашем index.js измените на использование

  host: '0.0.0.0',

Чтобы узнать больше о различиях между localhost (127.0.0.1) и 0.0.0.0, см.https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0

PS

Лучше иметьnpm run build во время сборки фразы для более быстрого запуска во время выполнения.

 Ashutosh Chamoli14 дек. 2018 г., 16:00
@ilusi для меня комментированиеhost параметр сработал.// host: process.env.HOST || 'localhost'
 ilusi13 дек. 2018 г., 15:53
Это решение работает. Спасибо @Henry и Siyu (также за ссылку).

Ваш ответ на вопрос