Skip to content

chore: setup Docker dev environment and add documentation#73

Open
fairwind2k wants to merge 2 commits intohexlet-boilerplates:mainfrom
fairwind2k:setup-docker-and-docs
Open

chore: setup Docker dev environment and add documentation#73
fairwind2k wants to merge 2 commits intohexlet-boilerplates:mainfrom
fairwind2k:setup-docker-and-docs

Conversation

@fairwind2k
Copy link

Добавлены

  • Dockerfile.dev - образ сборки проекта для разработки;
  • docker-compose.yaml - конфигурация для запуска;
  • DOCKER.md - документация (команды, описание возможностей)

- .:/app
- /app/node_modules
restart: unless-stopped
command: bash -c "npx knex migrate:latest && npm start -- --watch --verbose-watch --ignore-watch='node_modules .git .sqlite'"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно не указывать, тк эта команда указана уже использована в CMD образа, но лучше обернуть команду в какой-нибудь make start (наверняка эта же команда используется в локальном запуске)

context: .
dockerfile: Dockerfile.dev
ports:
- "8080:3000"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

для меньшей неожиданности порт внешний можно оставить тотже, что внутри

DOCKER.md Outdated

```yaml
ports:
- "3000:8080" # Внешний:Внутренний
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в docker compose yaml порты указаны наоборот.
Если порт занят, то это не проблема приложения, и оно обычно не должно зависеть от локальных особенностей (т.е. стоит отключить лишнее и освободить порт)

Dockerfile.dev Outdated
COPY package-lock.json .

# Используем --legacy-peer-deps для работы со старыми зависимостями
RUN npm ci --legacy-peer-deps
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

если образ используется для разработки, то установку зависимостей можно опустить.
образ будет отвечать только за окружение, а все команды (установка зависимостей и тд) выполняются уже в процессе жизни контейнера (к пример выполняем установку зависимостей командой docker compose run app npm ci

@fey
Copy link
Contributor

fey commented Feb 17, 2026

Я бы сократил количество команд, можно сделать make команды для этоо - создать docker.mk и заинклюдить его в Makefile. Докер композ файлы мы обычно называемс с префиксом compose-https://github.com/Hexlet/hexlet-sicp - тут пример.
плюс еще в ридми можно поправить порт, там щас 5000 указан.

@fairwind2k
Copy link
Author

Ок, поправлю

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants