Comanda docker init este un utilitar interactiv oficial introdus de Docker pentru a elimina complet presupunerile și erorile umane la crearea fișierelor de containerizare. Rulată în rădăcina unui proiect existent, comanda scanează codul sursă, identifică limbajul și framework-ul de dezvoltare (Node.js, Python, Go, Rust, Java/Maven, ASP.NET Core) și generează instantaneu o tripletă de fișiere optimizate conform standardelor de producție: Dockerfile, compose.yaml și .dockerignore.
Rularea interactivă a comenzii docker init
# Navigați în folderul proiectului vostru:
cd /proiect/aplicatie-node
# Lansați asistentul de inițializare:
docker init
# Asistentul vă va ghida printr-o serie de întrebări simple:
# ? What application platform does your project use? Node
# ? What version of Node do you want to use? 20.11.0
# ? Which package manager do you want to use? npm
# ? What command do you use to run your application? node server.js
# ? What port does your application listen on? 3000
# Rezultat:
# Created: .dockerignore
# Created: Dockerfile
# Created: compose.yaml
# Created: README.Docker.md
Ce fișiere generează docker init și de ce sunt optime?
- Dockerfile optimizat: Include automat arhitectură multi-stage build, crearea unui utilizator non-root (ex:
USER node), folosirea cache-ului pentru pachete (--mount=type=cache) și configurarea corectă a directiveiENV NODE_ENV=production. - compose.yaml: Configurează serviciul cu maparea porturilor, limite de resurse, politica de repornire (
restart: unless-stopped) și comentarii utile pentru adăugarea bazelor de date. - .dockerignore: Exclude automat directoarele mari sau secrete locale:
node_modules,.git,.env, directoare de cache și teste.
Sfat de producție: Chiar dacă sunteți un utilizator avansat de Docker,
docker init este cel mai rapid mod de a porni un proiect nou curat, evitând scrierea de la zero a regulilor repetitive din .dockerignore și a modelelor complexe de caching.