{"id":21701068,"url":"https://github.com/renatoelho/dockerfile","last_synced_at":"2026-05-17T18:35:35.082Z","repository":{"id":192040051,"uuid":"685927044","full_name":"Renatoelho/dockerfile","owner":"Renatoelho","description":"Um Dockerfile é um arquivo de configuração usado no Docker, uma plataforma de conteinerização que permite empacotar, distribuir e executar aplicativos em contêineres leves e isolados. O Dockerfile é usado para definir como um contêiner deve ser construído.","archived":false,"fork":false,"pushed_at":"2023-09-01T11:06:22.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-20T15:50:29.734Z","etag":null,"topics":["docker","docker-compose","dockerfile"],"latest_commit_sha":null,"homepage":"https://renato.tec.br/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Renatoelho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-01T10:32:41.000Z","updated_at":"2025-03-15T22:14:03.000Z","dependencies_parsed_at":"2023-09-02T07:48:20.508Z","dependency_job_id":null,"html_url":"https://github.com/Renatoelho/dockerfile","commit_stats":null,"previous_names":["renatoelho/dockerfile"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Renatoelho/dockerfile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fdockerfile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fdockerfile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fdockerfile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fdockerfile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Renatoelho","download_url":"https://codeload.github.com/Renatoelho/dockerfile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Renatoelho%2Fdockerfile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33149797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","dockerfile"],"created_at":"2024-11-25T20:17:54.824Z","updated_at":"2026-05-17T18:35:35.066Z","avatar_url":"https://github.com/Renatoelho.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Primeiros passos com Dockerfile\n\nUm Dockerfile é um arquivo de configuração usado no Docker, uma plataforma de conteinerização que permite empacotar, distribuir e executar aplicativos em contêineres leves e isolados. O Dockerfile é usado para definir como um contêiner deve ser construído. Ele contém uma lista de instruções que o Docker segue para criar uma imagem do contêiner.\n\n### Aqui estão algumas das instruções comuns que você pode encontrar em um Dockerfile:\n\n***FROM:*** Esta é a primeira instrução em um Dockerfile e especifica a imagem base a ser usada como ponto de partida. Todas as instruções subsequentes serão aplicadas a partir desta imagem base. Por exemplo, você pode usar FROM ubuntu:20.04 para iniciar com uma imagem base do Ubuntu 20.04.\n\n***RUN:*** Esta instrução permite que você execute comandos dentro do contêiner durante a construção da imagem. Por exemplo, você pode usar RUN apt-get update \u0026\u0026 apt-get install -y apache2 para instalar o servidor web Apache durante a construção da imagem.\n\n***COPY*** e ***ADD:*** Essas instruções são usadas para copiar arquivos e diretórios do sistema de arquivos do host para dentro do contêiner. O COPY é usado para copiar arquivos do host, enquanto o ADD pode fazer isso e também suporta URLs e descompactação de arquivos.\n\n***WORKDIR:*** Define o diretório de trabalho dentro do contêiner onde comandos subsequentes serão executados. Isso ajuda a manter o contexto dos comandos organizado.\n\n***EXPOSE:*** Esta instrução especifica as portas em que o contêiner estará escutando durante a execução. No entanto, ela não publica automaticamente as portas para o host, isso deve ser feito explicitamente ao iniciar o contêiner.\n\n***CMD*** e ***ENTRYPOINT:*** Essas instruções definem o comando padrão que será executado quando o contêiner for iniciado. A diferença principal é que o CMD pode ser substituído quando você inicia o contêiner com comandos específicos, enquanto o ENTRYPOINT não pode ser substituído.\n\n***ENV:*** Essa instrução define variáveis de ambiente dentro do contêiner, o que é útil para configurar parâmetros de aplicativos.\n\n***LABEL:*** Permite adicionar metadados descritivos à imagem, como informações de versão, autor, etc.\n\n***VOLUME:*** Especifica os pontos de montagem para volumes externos que podem ser anexados ao contêiner durante a execução.\n\nDepois de criar um [***Dockerfile***](dockerfile), você pode usar o comando docker build para criar uma imagem a partir dele. Em seguida, você pode usar essa imagem para criar e executar contêineres isolados que executam seu aplicativo ou serviço.\n\nO ***Dockerfile*** é uma parte fundamental da abordagem de ***conteinerização***, permitindo a criação de ambientes consistentes e isolados para seus aplicativos, facilitando a implantação e a escalabilidade.\n\n### Arquivo Dockerfile\n\n```bash\n# Imagem base do nosso Dockerfile.\nFROM ubuntu:20.04\n\n# Anotações para adicionar aos metadados da nossa imagem.\nLABEL maintainer=\"Renato coelho \u003ccontato@renato.tec.br\u003e\"\nLABEL version=\"0.0.1\"\nLABEL description=\"Está é uma imagem de exemplo.\"\n\n# Definindo o bash como SHELL padrão.\nSHELL [\"/bin/bash\", \"-c\"]\n\n# Criando e configurando o usuário 'user01' para nossa imagem.\nRUN useradd -ms /bin/bash user01 -G sudo \u0026\u0026 \\\n  passwd -d  user01 \u0026\u0026 \\\n  mkdir -p /home/user01/app\n\n# Definindo o diretório padrão da nossa imagem.\nWORKDIR /home/user01/app\n\n# Atualizando o APT e instalando alguns softwares.\nRUN apt update \u0026\u0026 \\\n  apt install curl \\\n  wget \\\n  nano \\\n  zip \\\n  unzip \\\n  sudo -y\n\n# Copiando o conteúdo do diretório 'app' para a imagem.\nCOPY app/ .\n\n# Copiando um arquivo direto da WEB para o diretório 'app'.\nADD https://renato.tec.br/wp-content/uploads/2020/07/Foto-Renato-FULL-Tratadav4.jpg .\n\n# Atribuindo a propriedade do diretório 'app' ao usuário 'user01'.\nRUN chown -R user01:user01 /home/user01/app\n\n# Adicionando a variável TERM as variáveis de ambiente da imagem.\nENV TERM=xterm-256color\n\n# Definindo o usuário padrão da nossa imagem.\nUSER user01\n\n# Comando para deixar o contêiner em execução, após sua ativação.\nENTRYPOINT tail -f /dev/null\n```\n\n### Exemplo de customização de uma imagem\n\n+ Clonando o repositório:\n\n```bash\ngit clone https://github.com/Renatoelho/dockerfile.git dockerfile\n```\n\n+ Acessando o repositório:\n\n```bash\ncd dockerfile/\n```\n\n+ Construíndo a imagem:\n\n```bash\ndocker build -f dockerfile -t imagem-base:0.0.1 .\n```\n\n+ Criando um contêiner a partir da imagem:\n\n```bash\ndocker run --rm -d --name=servidor_app --hostname=servidor_app imagem-base:0.0.1\n```\n\n+ Acessando o contêiner:\n\n```bash\ndocker exec -it servidor_app bash\n```\n\n### Referências: \n\nDockerfile reference, ***Docker Docs***. Disponível em: \\\u003c[https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/)\\\u003e. Acesso em: 01 set. de 2023.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenatoelho%2Fdockerfile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenatoelho%2Fdockerfile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenatoelho%2Fdockerfile/lists"}