Задать вопрос
dmc1989
@dmc1989

Как достучатся до сервиса на докере?

Написал простой сервис на ноде и запустил с помощью докера (как в инструкции), все вроде работает, но когда зашел в постмен, то не получилось достучатся до сервиса. Как правильно делать запрос на такие сервера?
Получаю такой результат:
5cde7f65c8be4001511707.jpeg
Все ли я правильно сделал и какой путь надо вводить в postman? Заранее спасибо

dockerfile
FROM node:8

WORKDIR /srv
ADD . .
RUN npm install

EXPOSE 3000
CMD ["node", "server.js"]


rule.json
{
  "ListenerArn": "placeholder",
  "Conditions": [
    {
      "Field": "path-pattern",
      "Values": [
        "/api/tasks*"
      ]
    }
  ],
  "Priority": 3,
  "Actions": [
    {
      "Type": "forward",
      "TargetGroupArn": "placeholder"
    }
  ]
}


server.js
const Koa = require('koa');
const Router = require('koa-router');
const db = require('./db.json');

const app = new Koa();
const router = new Router();

// logger
app.use(async (ctx, next) => {
  await next();
  const rt = ctx.response.get('X-Response-Time');
  console.log(`${ctx.method} ${ctx.url} - ${rt}`);
});

// x-response-time
app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  ctx.set('X-Response-Time', `${ms}ms`);
});

router.get('/api/tasks/by-forester/:foresterId', async (ctx, next) => {
  const id = parseInt(this.params.foresterId);
  ctx.body = db.posts.filter((task) => task.forester == id);
  await next();
});

router.get('/api/tasks/by-supervisor/:supervisorId', async (ctx, next) => {
  const id = parseInt(this.params.supervisorId);
  ctx.body = db.posts.filter((task) => task.supervisor == id);
  await next();
});

router.get('/api/', async (ctx, next) => {
  ctx.body = "API ready to receive requests";
  await next();
});

router.get('/', async (ctx, next) => {
  ctx.body = "Ready to receive requests";
  await next();
});

app.use(router.routes());
app.use(router.allowedMethods());

app.listen(3000, () => {
  console.log("Server work on port 3000");
});
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Пересоздать контейнер с параметром -p 3000:3000. EXPOSE сам по себе порты не прокидывает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы