Coder Social home page Coder Social logo

ws240309's Introduction

Workshop Lucianao Galvão 09/03/2024

Imagem

  1. subir o docker com o python Hello Word!!

    1. Fazer o projeto app.py

      import streamlit as st
      
      def hello_world():
         return "Hello, World! Show de Bola"
      
      def main():
         st.write(hello_world())
      
      if __name__ == "__main__":
         main()
    2. Criar um arquivo Dockerfile

      # Use uma imagem base do Python
      FROM python:3.11.5
      # Define o diretório de trabalho dentro do contêiner
      WORKDIR /app
      # Copia os arquivos do diretório atual para o diretório de trabalho no contêiner
      COPY . /app
      # Instala as dependências do aplicativo
      RUN pip install --no-cache-dir -r requirements.txt
      # configura a porta
      EXPOSE 8501
      # Comando para executar o aplicativo quando o contêiner for iniciado
      ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
    3. Rodar local no terminal

      docker build -t imagem-teste
      docker run -d -p 8501:8501 --name container-teste imagem-teste
    4. testar o ambiente:

      abrir o app no endereço (http://localhost:8501)

  2. subir o docker compose usando (Postgres + PgAdmin )

    Importante destacar que o Docker Compose é um serviço do próprio Docker voltado à criação e execução conjunta dos múltiplos containers de uma solução. Tal capacidade contribui para facilitar o deployment de um projeto em diferentes ambientes.

    Na listagem a seguir está o conteúdo do arquivo docker-compose.yml que permitirá a criação do ambiente citado (PostgreSQL + pgAdmin 4). Os testes descritos neste artigo acontecerão no Ubuntu Desktop 18.04:

    • O serviço teste-postgres-compose se refere à instância do PostgreSQL a ser criada para acesso na porta 15432;
    • Já o serviço teste-pgadmin-compose corresponde ao container que permitirá a execução do pgAdmin 4 (imagem dpage/pgadmin4) na porta 16543;
    • Nas seções environment de teste-pgadmin-compose e teste-postgres-compose foram definidas configurações (variáveis de ambientes) necessárias para a geração dos 2 containers;
    • As imagens referenciadas serão baixadas caso ainda não existam no ambiente a partir do qual o Docker Compose foi executado;
    • Foi especificado ainda um volume para teste-postgres-compose, indicando assim o diretório no Ubuntu Desktop em que serão gravados os arquivos de dados (/home/renatogroffe/Desenvolvimento/Docker-Compose/PostgreSQL);
    • Por meio da network postgres-compose-network acontecerá a comunicação entre os containers teste-pgadmin-compose e teste-postgres-compose.
    1. Criar um arquivo chamado docker-compose.yml

      version: "3"
      
      services:
          teste-postgres-compose:
              image: postgres
              environment:
                  POSTGRES_PASSWORD: "local"
              ports:
                  - "15432:5432"
              volumes:
                  - /PostgreSQL:/var/lib/postgresql/data
              networks:
                  - postgres-compose-network
      
          teste-pgadmin-compose:
              image: dpage/pgadmin4
              environment:
                  PGADMIN_DEFAULT_EMAIL: "[email protected]"
                  PGADMIN_DEFAULT_PASSWORD: "local"
              ports:
                  - "16543:80"
              depends_on:
                  - teste-postgres-compose
              networks:
                  - postgres-compose-network
      
      networks:
          postgres-compose-network:
              driver: bridge
    2. Rodar os comandos no terminal

      docker-compose up -d
      docker network ls
      docker-compose ps
    3. Testando o ambiente

      Um teste de acesso via browser ao pgAdmin 4 (http://localhost:16543) exibirá a tela inicial desta solução:

      Fornecendo as credenciais de acesso que estavam no arquivo docker-compose.yml aparecerá então o painel de gerenciamento do pgAdmin 4:

      Ao criar a conexão para acesso à instância do PostgreSQL levar em conta as seguintes considerações:

      • Em Host name/address informar o nome do container que corresponde à instância do PostgreSQL(teste-postgres-compose);
      • Em Port definir o valor 5432 (porta default de acesso ao container e disponível a partir da rede postgres-compose-network; não informar a porta em que o PostgreSQL foi mapeado no host);
      • No atributo Username será informado o usuário default do PostgreSQL (postgres), bem como a senha correspondente em Password.
  3. subir o docker compose completo (Postgres + PgAdmin + Python App)

    1. Criar um arquivo chamado docker-compose.yml
    version: "3"
    services:
        teste-postgres-compose:
            image: postgres
            environment:
                POSTGRES_PASSWORD: "local"
            ports:
                - "15432:5432"
            volumes:
                - postgres_data:/var/lib/postgresql/data
            networks:
                - postgres-compose-network
    
         teste-pgadmin-compose:
             image: dpage/pgadmin4
             environment:
                 PGADMIN_DEFAULT_EMAIL: "[email protected]"
                 PGADMIN_DEFAULT_PASSWORD: "local"
             ports:
                 - "16543:80"
             depends_on:
                 - teste-postgres-compose
             networks:
                 - postgres-compose-network
    
         python_app:
             build:
                 context: .
             container_name: python_app_container
             ports:
                 - "8501:8501"
             depends_on:
                 - teste-postgres-compose
             networks:
                 - postgres-compose-network
    
    networks:
    postgres-compose-network:
    driver: bridge
    
    volumes:
    postgres_data:
    
    1. Rodar os comandos no terminal
      docker-compose up -d
    docker network ls
    docker-compose ps
    1. Testando o ambiente

      Um teste de acesso via browser ao pgAdmin 4 (http://localhost:16543) exibirá a tela inicial desta solução:

      Fornecendo as credenciais de acesso que estavam no arquivo docker-compose.yml aparecerá então o painel de gerenciamento do pgAdmin 4:

      Ao criar a conexão para acesso à instância do PostgreSQL levar em conta as seguintes considerações:

      • Em Host name/address informar o nome do container que corresponde à instância do PostgreSQL(teste-postgres-compose);
      • Em Port definir o valor 5432 (porta default de acesso ao container e disponível a partir da rede postgres-compose-network; não informar a porta em que o PostgreSQL foi mapeado no host);
      • No atributo Username será informado o usuário default do PostgreSQL (postgres), bem como a senha correspondente em Password.

      Por ultimo abrir o app em (http://localhost:8501)

ws240309's People

Contributors

albertohco avatar

Watchers

 avatar

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.