Gerador de Dockerfile
Configurar aplicativo
Escolha uma das cinco tecnologias e informe o arquivo ou pacote que realmente inicia seu aplicativo.
O PHP-FPM oferece FastCGI na porta TCP interna 9000, não HTTP. Conecte-o a um servidor web compatível com FastCGI em uma rede privada. Não publique essa porta na internet.
Revisar arquivos geradosCrie um Dockerfile e um .dockerignore correspondente para projetos Node.js, Python, PHP-FPM, Go ou Rust. Escolha a tecnologia e informe o caminho ou binário que seu aplicativo usa de fato, sem depender de um comando de inicialização presumido. O resultado é um ponto de partida para construir um projeto convencional com os manifestos indicados. Leia os dois arquivos gerados antes de adicioná-los ao repositório.
Crie e confira os arquivos
-
1
Escolha a tecnologia e o ponto de entrada
Para Node.js ou Python, informe o caminho relativo do script. Para Go, informe o caminho do pacote. Para Rust, informe o nome do binário Cargo. O PHP-FPM usa um comando fixo para iniciar.
-
2
Defina o diretório e a porta interna
Escolha um caminho de aplicativo aceito, como /app ou /srv/app. EXPOSE apenas documenta a porta; seu aplicativo ainda precisa escutar nela. O PHP-FPM usa a porta interna 9000 para FastCGI.
-
3
Revise os dois arquivos
Leia o Dockerfile e o .dockerignore juntos. Confira os nomes dos manifestos, o ponto de entrada, as permissões em tempo de execução e as dependências nativas de sistema necessárias ao projeto.
-
4
Copie ou baixe
Baixe o ZIP e extraia os dois arquivos na raiz do contexto de build do Docker. Se preferir, copie cada arquivo e salve como Dockerfile e .dockerignore. Depois, construa a imagem e teste o contêiner com seu aplicativo.
Escolha um ponto de entrada que exista no projeto
O gerador não consegue inspecionar seu repositório. Ele usa a tecnologia, o ponto de entrada, o diretório e a porta que você informar. Um aplicativo Node.js precisa de um arquivo JavaScript de entrada e de um arquivo de bloqueio do npm; Python precisa de um script e de requirements.txt; Go precisa de um módulo go.mod e do caminho do pacote; Rust precisa de um projeto Cargo e do nome de um binário. O PHP-FPM é diferente: inicia um processo FastCGI, não um servidor HTTP. Coloque um servidor web compatível com FastCGI, como o Nginx, à frente dele em uma rede privada de contêineres. A imagem PHP escuta internamente na porta 9000. Não publique essa porta FastCGI na internet.
| Tecnologia | Ponto de entrada informado | Arquivos do projeto a conferir |
|---|---|---|
| Node.js | Caminho relativo de JavaScript, como server.js |
package.json, package-lock.json, arquivo de entrada |
| Python | Caminho relativo de Python, como app.py |
requirements.txt, arquivo de entrada |
| PHP-FPM | Processo fixo php-fpm |
Código PHP e um servidor web FastCGI separado |
| Go | Caminho do pacote, como . ou ./cmd/server |
go.mod e código-fonte do pacote |
| Rust | Nome do binário Cargo | Cargo.toml, Cargo.lock e o alvo binário indicado |
O que os arquivos gerados fazem
WORKDIR define o diretório de trabalho do processo dentro da imagem. O formulário aceita caminhos de aplicativo em /app, /srv/app, /opt/app, /workspace, /usr/src/app ou /var/www; rejeita caminhos do sistema, como /root, e caracteres que poderiam transformar a entrada em outra instrução Dockerfile. EXPOSE documenta uma porta do contêiner; não abre o firewall do host nem faz o aplicativo escutar. O .dockerignore gerado exclui do contexto de build diretórios comuns de dependências locais, dados de controle de versão e arquivos .env na raiz ou em subpastas. Leia esse arquivo antes do build: se uma regra excluir algo necessário ao projeto, ajuste-a. Nunca inclua segredos no código-fonte, em ARG ou em ENV.
Projetos compilados em Go e Rust usam etapas separadas de build e execução. Assim, as ferramentas de compilação não entram na imagem final. As variantes Node.js e Python instalam as dependências declaradas, e a variante PHP-FPM inicia o serviço FastCGI. Uma configuração de contêiner não garante que um projeto real será construído, iniciado, aprovado em uma verificação de integridade, atenderá à rota esperada ou poderá ser implantado com segurança. Frameworks, extensões nativas, builds de recursos e permissões de arquivos podem exigir etapas adicionais. As boas práticas de build e a documentação do contexto de build do Docker explicam a ordem das camadas e o funcionamento do arquivo de exclusões.
Valide com seu aplicativo
Extraia o ZIP na raiz do contexto de build, preservando exatamente os nomes Dockerfile e .dockerignore, ou copie cada arquivo e salve com esses nomes. Execute docker build --check . se sua versão do Docker aceitar esse comando e, depois, docker build -t my-app .. Inicie a imagem em um ambiente de teste e confira o comando de inicialização e a rota reais. Para tecnologias HTTP, mapeie apenas a porta desejada do contêiner e confira a resposta. Para PHP-FPM, use uma conexão FastCGI em rede privada em vez de publicar a porta 9000. Antes de qualquer implantação em produção, revise as atualizações recentes da imagem base e os arquivos de bloqueio de dependências.
Perguntas frequentes
Não. Ele é um ponto de partida convencional para a tecnologia e o ponto de entrada escolhidos. Confira os arquivos reais de dependências, os pacotes nativos, o build de recursos, as permissões, o comportamento na inicialização e os requisitos de segurança. Construa e execute a imagem com seu projeto antes de implantar.
Não. EXPOSE documenta a porta do contêiner. Seu aplicativo precisa escutar nela, e uma configuração de execução separada controla o mapeamento para o host. O PHP-FPM usa FastCGI em vez de HTTP; mantenha a porta 9000 em uma rede privada de contêineres, atrás de um servidor web compatível.
Esse arquivo exclui do contexto de build do Docker dependências locais comuns, dados do Git e arquivos de ambiente. O ZIP preserva o ponto no início do nome. Extraia os dois arquivos na raiz do contexto de build e confira cada regra em relação ao seu projeto para não excluir arquivos necessários à construção da imagem.
Não. A tecnologia, o ponto de entrada, o diretório e a porta escolhidos são incluídos na URL da página de resultado e enviados a este site para exibir os arquivos. Não informe segredos nem caminhos de repositórios privados. A ferramenta não envia seu código-fonte nem inspeciona seu repositório.
Ferramentas relacionadas
Gerador de cards CSS
Crie um card com seu título, texto e link opcional. Ajuste cores, borda, espaçamento, sombra e efeito ao passar o mouse. Depois copie ou baixe o HTML e o CSS.
Gerador de textura de ruído
Gere uma textura de ruído em SVG que se repete sem emendas, com opacidade, frequência do grão, tipo de ruído e cor de fundo ajustáveis, e copie o CSS já pronto.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Gerador de Imagem Markdown
Gere a sintaxe de imagem do Markdown com texto alternativo, atributo de título e link opcional. Saída inline e em estilo de referência.
Ferramenta disponível em outros idiomas
- Dockerfile-generator [NL]
- Trình tạo Dockerfile [VI]
- Dockerfile 생성기 [KO]
- Dockerfile-Generator [DE]
- Generator Dockerfile [PL]
- Dockerfileジェネレーター [JA]
- Générateur de Dockerfile [FR]
- ตัวสร้าง Dockerfile [TH]
- Generator Dockerfile [ID]
- مولّد Dockerfile [AR]
- Dockerfile-generator [SV]
- Generador de Dockerfile [ES]
- Dockerfile Generator [EN]
- Generatore di Dockerfile [IT]
- Генератор Dockerfile [RU]
- Dockerfile Oluşturucu [TR]
- Dockerfile 生成器 [ZH]