anúncios

domingo, 16 de outubro de 2022

Configurando e iniciando o projeto Flask no ambiente Docker

Flask é um micro-framework, lançado em 2010 e desenvolvido por Armin Ronatcher, seu foco é para pequenas aplicações com requisitos simples, como site básico e para desenvolvimento de API REST em Python.

O objetivo deste post, é explicar os procedimentos de configuração e inicialização de um projeto base em Flask no ambiente Docker.

$ mkdir $HOME/ambiente-flask-docker && cd $HOME/ambiente-flask-docker

Crie o arquivo app.py com o seguinte conteúdo:

app.py


from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host="0.0.0.0")


Preparando o ambiente Flask no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Crie o Dockerfile no diretório python-flask com o seguinte conteúdo

$ cd $HOME/ambiente-flask-docker && mkdir python-flask

Dockerfile


FROM python:3.6.1-alpine
RUN pip install flask
CMD ["python","app.py"]

Configurando o Docker Compose

Crie o arquivo docker-compose.yml no diretório criado anteriormente

docker-compose.yml


version: '3'
services:
   python-flask:
     build: 
      args:
        user: saitam
        uid: 1000
      context: ./python-flask
     container_name: python-flask
     volumes:
       - ./src:/app
     ports:
       - "5000:5000"

$ docker-compose up -d

Abre o browser http://localhost:5000, irá exibir o conteúdo "Hello World!" definido na rota /. Crie outros endpoints para testes, antes de desenvolver a API REST com Flask.

Para acessar o container é $ docker exec -it python-flask bash

Pronto, a partir desse momento já tem o ambiente Flask no Docker para seus projetos.

Referências

https://flask.palletsprojects.com/en/2.2.x/

Feito!

sábado, 15 de outubro de 2022

Configurando e iniciando projeto Angular no ambiente Docker

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto Angular no ambiente Docker.

Preparando o ambiente Angular no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/ambiente-angular-docker && cd $HOME/ambiente-angular-docker

$ docker run --rm --volume "/home/reginaldo/ambiente-angular-docker:/usr/node/app" --workdir "/usr/node/app" --publish 4200:4200 -it node:18 bash

O comando acima, irá conectar ao conteiner node, de modo similar como estiver conectado a outro computador via SSH.

Na primeira vez que executar, o Docker irá fazer o download da imagem node:18 e pode levar alguns minutos.

Explicando os parâmetros informados:

--volume "/home/reginaldo/ambiente-angular-docker:/usr/node/app" Cria o link entre o diretório do HOST (/home/reginaldo/ambiente-angular-docker) com o diretório do CONTAINER (/usr/node/app).

--WORKDIR "/usr/node/app" Diretório inicial no momento que o container foi inicializado.

--publish 4200:4200 Cria um link entre a porta 4200 do HOST com a porta 4200 do CONTAINER

--it Cria um link entre o terminal do container com o terminal do HOST

--rm Remove antigos containers (muito útil depois da primeira execução)

Criando o primeiro projeto Angular

Estando conectado no container node com o comando que executou anteriormente, conforme explicado.

Primeiro, vamos instalar o Angular via NPM

npm install -g @angular/cli

Agora vamos criar o projeto Angular

ng new .

O . indica que irá criar o nome do projeto com mesmo nome do diretório criado.

Informe as configurações desejadas para seu projeto e só aguardar o projeto ser configurado.

Pronto, o primeiro aplicativo Angular foi criado.

É importante salientar que ambiente com Docker é volátil, quando não criado o volume que mapeia o diretório entre HOST e CONTAINER, conforme foi criado no comando é adicionado o volume.

No diretório volume do HOST, observe o Owner, provavelmente irá precisar alterar para o seu usuário.

$ sudo chown -R $USER $HOME/ambiente-angular-docker

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules

Executando o projeto Angular no Docker

No diretório do volume, adaptando o nome do seu usuário, execute:

$ docker run --rm --volume "/home/reginaldo/ambiente-angular-docker:/usr/node/app" --workdir "/usr/node/app" --publish 4200:4200 -it node:18 bash

Estando conectado no container node, execute o comando:

ng serve

Abre o browser http://localhost:4200

Configurando o ambiente Angular no Docker Compose

Para não precisar executar o comando Docker Run toda hora, pode simplificar e organizar com o Docker Compose

Pode criar o arquivo docker-compose.yml no diretório de sua preferência

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-angular
    args:
      user: saitam
      uid: 1000
    ports:
      - '4200:4200'
    volumes:
      - ./src:/usr/node/app
    working_dir: /usr/node/app
    command: 'ng serve'

$ docker-compose up

OU

$ docker-compose up -d

O primeiro comando o log fica aberto em tempo de execução. O segundo é executado em background. Eu prefiro executar o segundo, quando preciso verificar o log, executo docker ps

E para acessar o container é $ docker exec -it <CONTAINERID> bash

Pronto, a partir desse momento já tem o ambiente Angular no Docker para seus projetos.

Feito!

sexta-feira, 14 de outubro de 2022

Configurando e iniciando projeto Vue.js no ambiente Docker

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto Vuejs no ambiente Docker.

Preparando o ambiente Vue.js no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/ambiente-vuejs-docker && cd $HOME/ambiente-vuejs-docker

$ docker run --rm --volume "/home/reginaldo/ambiente-vuejs-docker:/usr/node/app" --workdir "/usr/node/app" --publish 8080:8080 -it node:18 bash

O comando acima, irá conectar ao conteiner node, de modo similar como estiver conectado a outro computador via SSH.

Na primeira vez que executar, o Docker irá fazer o download da imagem node:18 e pode levar alguns minutos.

Explicando os parâmetros informados:

--volume "/home/reginaldo/ambiente-vuejs-docker:/usr/node/app" Cria o link entre o diretório do HOST (/home/reginaldo/ambiente-vuejs-docker) com o diretório do CONTAINER (/usr/node/app).

--WORKDIR "/usr/node/app" Diretório inicial no momento que o container foi inicializado.

--publish 8080:8080 Cria um link entre a porta 8080 do HOST com a porta 8080 do CONTAINER

--it Cria um link entre o terminal do container com o terminal do HOST

--rm Remove antigos containers (muito útil depois da primeira execução)

Criando o primeiro projeto Vue.js

Estando conectado no container node com o comando que executou anteriormente, conforme explicado.

Primeiro, vamos instalar o Vue via NPM

npm install -g @vue/cli

Agora vamos criar o projeto Vue.js

vue create .

O . indica que irá criar o nome do projeto com mesmo nome do diretório criado.

Informe as configurações desejadas para seu projeto e só aguardar o projeto ser configurado.

Pronto, o primeiro aplicativo Angular foi criado.

É importante salientar que ambiente com Docker é volátil, quando não criado o volume que mapeia o diretório entre HOST e CONTAINER, conforme foi criado no comando é adicionado o volume.

No diretório volume do HOST, observe o Owner, provavelmente irá precisar alterar para o seu usuário.

$ sudo chown -R $USER $HOME/ambiente-vuejs-docker

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules

Executando o projeto Vue.js no Docker

No diretório do volume, adaptando o nome do seu usuário, execute:

$ docker run --rm --volume "/home/reginaldo/ambiente-vuejs-docker:/usr/node/app" --workdir "/usr/node/app" --publish 8080:8080 -it node:18 bash

Estando conectado no container node, execute o comando:

npm run serve

Abre o browser http://localhost:8080

Configurando o ambiente Vue.js no Docker Compose

Para não precisar executar o comando Docker Run toda hora, pode simplificar e organizar com o Docker Compose.

Pode criar o arquivo docker-compose.yml no diretório de sua preferência

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-vuejs
    args:
      user: saitam
      uid: 1000
    ports:
      - '8080:8080'
    volumes:
      - ./src:/usr/node/app
    working_dir: /usr/node/app
    command: 'npm run serve'

$ docker-compose up

OU

$ docker-compose up -d

O primeiro comando o log fica aberto em tempo de execução. O segundo é executado em background. Eu prefiro executar o segundo, quando preciso verificar o log, executo docker ps.

E para acessar o container é $ docker exec -it <CONTAINERID> bash

Pronto, a partir desse momento já tem o ambiente Vue.js no Docker para seus projetos.

Feito!

terça-feira, 11 de outubro de 2022

Configurando e iniciando projeto Node.js no ambiente Docker

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto Node.js no ambiente Docker.

Preparando o ambiente Node.js no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir ambiente-nodejs-docker && cd ambiente-nodejs-docker

Cria o arquivo app.js


const http = require('http');

const hostname = '127.0.0.1';
const port = 3001;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});

server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules.

$ docker run --rm --volume "/home/reginaldo/ambiente-nodejs-docker:/usr/node/app" --workdir "/usr/node/app" -it node:18 bash

Estando conectado no container node, execute:

npm install nodemon -g
/srv/node/app/node_modules/.bin/nodemon app.js

Abra o browser http://localhost:3001 irá exibir na página "Hello World".

Configurando o ambiente Node.js com Docker Compose

Pode criar o arquivo docker-compose.yml no diretório de sua preferência, copie o arquivo app.js que é o servidor web do Node.js no diretório src

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-node
    args:
      user: saitam
      uid: 1000
    ports:
      - '3001:3001'
    volumes:
      - ./src:/srv/node/app
    working_dir: /srv/node/app
    command: '/srv/node/app/node_modules/.bin/nodemon app.js'

docker-compose up -d

Abra o browser http://localhost:3001

Adicionando o Express

Conecte no container conforme segue:

$ docker exec -it ambiente-node bash

Estando no container ambiente-node, execute:

npm install express --save

Pode substituir o conteúdo no arquivo app.js


const express = require('express');
const app = express();

app.get('/', (req, res) => {
res.send('Hello World! na Home');
});

app.get('/hello', (req, res) => {
res.send('Hello World!');
});

app.listen(3001, 'http://127.0.0.1') {
console.log('app listening on port 3001!');
});

Como foi instalado o Nodemon que faz o watch do arquivo para atualizar, sem precisar reiniciar a execução do node app.js. Teste no browser http://localhost:3001 com as rotas que criou.

Pronto, agora já tem o ambiente de desenvolvimento Node.js no Docker, que pode utilizar em paralelo (Backend no Node.js e Frontend no React) com o ambiente React no Docker .

Feito!

segunda-feira, 10 de outubro de 2022

Configurando e iniciando o projeto React no ambiente Docker

Quem já não teve problema com versões incompatíveis na quebra de compatibilidade devido a atualização que funcionava na versão anterior em comparação com a versão atual?

Para evitar isso, recomendado utilizar o Docker no ambiente de desenvolvimento.

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto React no ambiente Docker.

Preparando o ambiente React no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/ambiente-react-docker && cd $HOME/ambiente-react-docker
$ docker run --rm --volume "/home/reginaldo/ambiente-react-docker:/usr/node/app" --workdir "/usr/node/app" --publish 3000:3000 -it node:18 bash

O comando acima, irá conectar ao conteiner node, de modo similar como estiver conectado a outro computador via SSH.

Na primeira vez que executar, o Docker irá fazer o download da imagem node:18 e pode levar alguns minutos.

Explicando os parâmetros informados:

--volume "/home/reginaldo/ambiente-react-docker:/usr/node/app" Cria o link entre o diretório do HOST (/home/reginaldo/ambiente-react-docker) com o diretório do CONTAINER (/usr/node/app).

--WORKDIR "/usr/node/app" Diretório inicial no momento que o container foi inicializado.

--publish 3000:3000 Cria um link entre a porta 3000 do HOST com a porta 3000 do CONTAINER

--it Cria um link entre o terminal do container com o terminal do HOST

--rm Remove antigos containers (muito útil depois da primeira execução)

Criando o primeiro projeto React

Estando conectado no container node com o comando que executou anteriormente, conforme explicado, execute:

npx create-react-app .

Pronto, o primeiro aplicativo React foi criado.

É importante salientar que ambiente com Docker é volátil, quando não criado o volume que mapeia o diretório entre HOST e CONTAINER, conforme foi criado no comando é adicionado o volume.

No diretório volume do HOST, observe o Owner, provavelmente irá precisar alterar para o seu usuário.

$ sudo chown -R $USER $HOME/ambiente-react-docker

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules

Executando o projeto React no Docker

No diretório do volume, adaptando o nome do seu usuário, execute:

$ docker run --rm --volume "/home/reginaldo/ambiente-react-docker:/usr/node/app" --workdir "/usr/node/app" --publish 3000:3000 -it node:18 bash

Estando conectado no container node, execute o comando:

npm start

Abre o browser http://localhost:3000

Configurando o ambiente React com Docker Compose

Para não precisar executar o comando Docker Run toda hora, pode simplificar e organizar com o Docker Compose

Pode criar o arquivo docker-compose.yml no diretório de sua preferência

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-react
    args:
      user: saitam
      uid: 1000
    ports:
      - '3000:3000'
    volumes:
      - ./src:/usr/node/app
    working_dir: /usr/node/app
    command: 'npm start'

$ docker-compose up OU
$ docker-compose up -d

O primeiro comando o log fica aberto em tempo de execução. O segundo é executado em background. Eu prefiro executar o segundo, quando preciso verificar o log, executo docker ps

E para acessar o container é docker exec -it <CONTAINERID> bash

Pronto, a partir desse momento já tem o ambiente React no Docker para seus projetos

Feito!

sexta-feira, 7 de outubro de 2022

Instalando e Configurando o Jenkins no ambiente Docker

O objetivo deste post, é explicar os procedimentos de instalação e configuração do Jenkins no ambiente Docker.

O que é Jenkins?

Jenkins é uma ferramenta de integração contínua de código aberto para automatizar o deploy do projeto, na execução de testes unitários, testes integrados e o build completo.

Instalação e configuração

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/jenkins && cd $HOME~/jenkins

$ curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/jenkins/docker-compose.yml > docker-compose.yml

PS: Para utilizar no servidor de produção, é recomendado alterar a variável JENKINS_PASSWORD que é o password administrador do Jenkins.

Altere a porta do HOST também, por outra porta alta que não esteja usando.

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, abre o browser e acesse http://localhost:<PORTA>

O acesso username/password default são: admin/bitname.

Caso tenha alterado por meio das variáveis JENKINS_USERNAME e JENKINS_PASSWORD, respectivamente no arquivo docker-compose.yml, então utilize o que você definiu.

Após o acesso do Jenkins, pode criar os Jobs na ordem de execução para o deploy automatizado do seu projeto com CI/CD (Continuos Integrations/Continuos Delivery).

O que é CI/CD?

CI/CD (Continuous Integration/Continuous Delivery), é um método para entregar aplicações com frequência aos clientes. Para isso, é aplicada a automação nas etapas do desenvolvimento de aplicações.

Exemplos de ferramentas que fazem CI/CD: Jenkins, Bamboo, GitHub Actions, CircleCI.

Utilize a ferramenta CI/CD a sua escolha para o seu projeto. É importante ressaltar que essas ferramentas de CI/CD integram com o Git com as plataformas GitHub, Bitbucket e Gitlab.

Referências

https://www.jenkins.io/doc/

Feito!