Coder Social home page Coder Social logo

docker-simple-tutorial's Introduction

O que eu fiz para rodar esse role no docker

Antes de mais nada, é necessário instalar o Docker na sua máquina.

Basicamente, escrevi o arquivinho test.py que imprime em tela umas informações da máquina que está executando o script. Ele identifica caso esteja rodando em Mac ou outro OS.

"""
Teste de execução do código dentro de um container docker.
"""

import os
import platform

print("\nQual o sistema operacional??\n")
print(f"O nome do OS é {os.name}...")
print(f"e a plataforma é {platform.system()}")
print(f"sendo que a release é {platform.release()}\n")
print("Logo...\n")


if platform.system() == 'Darwin':
    print("To rodando no Mac")
else:
    print("Não to mais executando no Mac.")
    
print("\n")

Então, escrevi o Dockerfile (que não tem nenhuma extensão do arquivo mesmo):

# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
WORKDIR /my-tests
COPY . .
CMD ["python3", "test.py"]

Descrevendo esse arquivo linha por linha:

  1. Configuro a syntax de escrita do arquivo;
  2. Escolho a imagem que irá executar o código, que aqui é uma imagem padrão de python 3.8;
  3. Defino a pasta de execução na imagem;
  4. Copio os arquivos da minha máquina para a imagem;
  5. Executo o código.

Até aí beleza. Agora eu preciso fazer o build do dockerfile em uma imagem, e em seguida executar a imagem (run) em um container.

Para fazer isso, eu tive certeza que meu terminal estava no diretório raiz do projeto (/my-test) e executei o comando com a flag de tag para nomear a imagem:

% docker build --tag my-test .

Esse comando cria uma imagem nomeada my-test com as configurações necessárias para a execução do meu código. No fim, o que essa imagem vai fazer é executar os comandos que eu escrevi no Dockerfile.

Para executar o código dentro de um container, eu executei no terminal:

% docker run my-test

E foi isso. Tive o seguinte output:

% docker run my-test

Qual o sistema operacional??

O nome do OS é posix...
e a plataforma é Linux
sendo que a release é 5.10.104-linuxkit

Logo...

Não estou mais executando no Mac.

É isso! Para mais infos, link para o tutorial

Mas e agora? Será que o container ainda tá executando mesmo depois de finalizar a execução o meu código python? Podemos ver todos os containers com:

% docker ps -a

Uma vez que está com o STATUS "Exited", o container não está mais executando.

Agora fica o questionamento, o que qcontece se eu atualizar meu código python e só der docker run my-test? Para testar isso, troquei a linha 17 do meu código por:

print("Será que ele roda com o arquivo mais novo?")

Vou rodar docker run my-test:

% docker run my-test


Qual o sistema operacional??

O nome do OS é posix...
e a plataforma é Linux
sendo que a release é 5.10.104-linuxkit

Logo...

Não estou mais executando no Mac.

Não atualizou. Nesse caso, somente dá certo quando eu dei build e run novamente:

% docker build --tag my-test .
% docker run my-test

Et voilà! Tudo atualizado.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.