Browse Source

learning about CI/CD

master
Yutsuo 7 years ago
parent
commit
32b2c87e47
  1. 127
      ambiente_git_labbs.txt
  2. 48
      node/README.md

127
ambiente_git_labbs.txt

@ -0,0 +1,127 @@
Em complemento a resposta acima....
Pré-requisitos para funcionamento de um projeto em docker na infraestrutura do Labbs:
volumes:
O padrão do volume do lado do Host deve ser assim:
/mnt/dados/nomedogrupo/nomedoprojeto:/path/to/container
Onde nomedogrupo no caso de projetos pessoais, será o nome do usuário. E nomedoprojeto como o próprio nome diz, é o nome do projeto criado.
Network
Recomendamos por motivos de segurança, caso seu projeto utilize algum banco de dados, que seja criada uma rede específica para comunicação do banco de dados com a aplicação que fará uso dela. Dessa forma, utilize a seguinte configuração para criação e utilização dessa rede:
networks:
app-bd-net:
driver: overlay
traefik-net:
external:
name: traefik-net
No swarm já temos criada a rede default chamada traefik-net. Se quer somente colocar um projeto simples via docker-compose basta adicionar as linhas a seguir ao final do seu docker-compose.yml:
networks:
default:
external:
name: traefik-net
Senão, se for utilizar um wordpress por exemplo que utiliza um banco de dados, para utilizar a segurança mencionada mais acima, utilize a rede criada (app-bd-net) para o service do banco de dados e do wordpress e a rede Traefik-net somente para o wordpress. Dessa forma somente o wordpress terá contato com a rede externa traefik-net e o banco de dados somente estará acessível pela rede app-bd-net a qual está só ele e o wordpress.
Label traefik(informações de borda)
Algumas informações aqui são necessárias para que o traefik(gerenciador de borda) reconheça e aponte corretamente as requisições para seu container. São elas:
deploy:
labels:
- traefik.docker.network=traefik-net
- traefik.frontend.entryPoints=internal_http,internal_https,external_http,external_https
- traefik.frontend.rule=Host:seudominio.labbs.com.br
- traefik.port=8080(Se tomcat)80(se nginx)
.gitlab-ci.yml
Aqui teremos basicamente 2 modelos de arquivos responsáveis por chamar os scripts de CI/CD: Um que chama os scripts de build e deploy e outro que chama somente o script de deploy.
Branch deploy
Branch necessária para disponibilização do container rodando em Produção. Após a criação dessa branch(clone da master), além da master que vc já tem por padrão, basta realizar o merge request da branch master para a branch deploy e o projeto já irá pra produção.
links, depends, restart: always
Esses parâmetros serão ignorados no modo swarm com docker-compose versão 3 por não serem suportados e já terem suas funções intrinsecamente realizadas.
sandman.yml
Esse arquivo não é obrigatório no caso de o projeto ser somente de deploy, porém, oferece algumas possibilidades de configurações adicionais ao projeto: port, subdomain, edges, deploy_mode, desired instances, dentre outros.
-#internal port of container, for traefik connection
-#default: 80
port: 80
-#override subdomain in host of container, i.e.: foo.labbs.com.br
-#default: Inverted git repository path
subdomain: foo
-#override host of container
-#default: $SUBDOMAIN.labbs.com.br
host: test.labbs.com.br
-#enable redirect ssl
-#default: true
ssl: true
-#create redirections on edges
-#default:
redirects: teste.labbs.com.br,teste2.labbs.com.br
-#define edges of container
-#default: internal
edges: internal,external(Acesso via internet)
-#define desired instances number of container
-#default: 1
desired_instances: 1
-#define mode of deploy of service. (service or stack)
-#default: service
deploy_mode: stack
-#define name of stack
-#warning: [usage mode in deprecation] old usage of variable enabled stack deploy mode
-#default:
stack: stacktest

48
node/README.md

@ -1,32 +1,34 @@
* Command line instructions * Command line instructions
Git global setup
git config --global user.name "Daniel de Oliveira Carvalho" Git global setup
git config --global user.email "daniel_carvalho@bb.com.br"
git config --global user.name "Daniel de Oliveira Carvalho"
git config --global user.email "daniel_carvalho@bb.com.br"
Create a new repository Create a new repository
git clone https://git.labbs.com.br/f2256342/onboard_phase_2.git git clone https://git.labbs.com.br/f2256342/onboard_phase_2.git
cd onboard_phase_2 cd onboard_phase_2
touch README.md touch README.md
git add README.md git add README.md
git commit -m "add README" git commit -m "add README"
git push -u origin master git push -u origin master
Existing folder Existing folder
cd existing_folder cd existing_folder
git init git init
git remote add origin https://git.labbs.com.br/f2256342/onboard_phase_2.git git remote add origin https://git.labbs.com.br/f2256342/onboard_phase_2.git
git add . git add .
git commit -m "Initial commit" git commit -m "Initial commit"
git push -u origin master git push -u origin master
Existing Git repository Existing Git repository
cd existing_repo cd existing_repo
git remote rename origin old-origin git remote rename origin old-origin
git remote add origin https://git.labbs.com.br/f2256342/onboard_phase_2.git git remote add origin https://git.labbs.com.br/f2256342/onboard_phase_2.git
git push -u origin --all git push -u origin --all
git push -u origin --tags git push -u origin --tags

Loading…
Cancel
Save