Как собрать простое приложение для Node.js в Docker контейнер?


Ответы

Структура каталогов

.
├── app
│   └── hello-world.js
├── Dockerfile
└── .gitlab-ci.yml

Файл hello-world.js

const http = require('http');

const hostname = '0.0.0.0';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

Файл Dockerfile

FROM node:12

MAINTAINER RemiZOffAlex <remizoffalex@gmail.com>

RUN node --version
RUN npm --version

WORKDIR /app
COPY ./app /app
EXPOSE 3000

CMD [ "node", "/app/hello-world.js"]

Файл .gitlab-ci.yml

stages:
  - build

buildok:
  stage: build
  script:
    - docker build -t node-example ./