Como usar o Kaniko para criar imagens de contêineres no GitLab CI/CD
Hoje, no blog da 4Linux, vamos falar sobre o CI/CD especificamente do Gitlab CI e em como podemos fazer o build de uma imagem de um container de forma facilidade na nossa pipeline. E como faremos isso?
com uma ferramente chamada Kaniko. Então vamos láปั่นสล็อตเว็บตรงสล็อตเว็บตรง
O que é o Kaniko
O Kaniko é um ferramenta utilizada para a criação de de imagens de contêineres em um arquivo Docker, dentro de um contêiner, cluster de K8s ou até mesmo dentro de uma pipeline, que é o objetivo do nosso artigo. Com o Kaniko, não há a necessidade da execução de um daemom do Docker, pois é possível executar os comandos de dentro de um arquivo Docker dentro do espaço do usuário. Basicamente, ele vai gerar a imagem do contêiner baseado de um Dockerfile e enviar para o repositório de imagens definido.
Usando o Kaniko com o GitLab CI/CD
Para usar o Kaniko é necessário que exista um executor para que seja feito a criação da imagem e os executores são:
- Docker
- Docker Machine
- Kubernetes
Ao construir uma imagem com Kaniko em conjunto do GitLab CI/CD, é recomendado que se utilize a imagem na pipeline do gcr.io/kaniko-project/executor:debug , porque ela possui um shell, e ter um shell é necessário para utilizar imagens no GitLab CI/CD. Além disso, é necessário que exista um arquivo config.json com as informações de autenticação para o servidor de Registry do contêiner desejado.
Criando Pipeline
No nosso exemplo, vamos criar uma pipeline simples onde o nosso Registry será o DockerHub e o nosso Dockerfile vai criar uma aplicação simples do nodejs. Então crie um repositório no Dockerhub com o nome da aplicação e no GitLab e crie os arquivos abaixo.ทดลองเล่นสล็อต
Dockerfile:
FROM node:12-alpine
RUN apk add --no-cache python2 g++ make
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000Pipeline, com o nome de arquivo .gitlab-ci.yaml
variables: DOCKER_HUB_IMAGE: $DOCKER_HUB_IMAGE DOCKER_HUB_PASSWORD: $DOCKER_HUB_PASSWORD DOCKER_HUB_REGISTRY: $DOCKER_HUB_REGISTRY DOCKER_HUB_USER: $DOCKER_HUB_USER DOCKER_HOST: tcp://docker:2375 stages: - build kaniko: stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - mkdir -p /kaniko/.docker - echo "{"auths":{"${DOCKER_HUB_REGISTRY}":{"auth":"$(printf "%s:%s" "${DOCKER_HUB_USER}" "${DOCKER_HUB_PASSWORD}" | base64 | tr -d 'n')"}}}" > /kaniko/.docker/config.json - >- /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${DOCKER_HUB_IMAGE}:${CI_COMMIT_TAG}"
Os pontos de atenção nessa nossa pipeline é as variáveis, elas são definidas no próprio GitLab, no menu de Settings -> CI/CD -> Variables
DOCKER_HUB_IMAGE: Nome da imagem
DOCKER_HUB_PASSWORD: Senha do seu DockerHub
DOCKER_HUB_REGISTRY: URL do seu DockerHub, por padrão é https://index.docker.io/v1/
DOCKER_HUB_USER: Nome do seu usuario que faz login no DockerHub.ufabet911ทดลองเล่นสล็อต PG
Observem que na Pipeline, existe a linha que cria um diretório .docker, nesse diretório, é onde é criado também o arquivo config.json que vai receber as credenciais de acessos do DockerHub ou do Registry definido nas variáveis.
Feito isso todos esses passos. Agora vamos executar a nossa pipeline.
Executando Job
A pipeline de vocês irá ser executada após o commit enviados ao repositório do GitLab, na branch definida, por padrão irá rodar na “main” e vocês terão a seguinte visão conforme imagens abaixo.
Job em execução:ทดลองเล่นสล็อต
O gitlab-runner foi criado e está preparando o executor, que trata-se de uma Docker-Machine, e usando a imagem que recomendamos no começo do post:สล็อตเว็บตรง
Pronto, foi feito o build da imagem que escrevemos no Dockerfile:ดูหนังออนไลน์ 4k
Nosso job foi executado com sucesso:
É isso pessoal, testem e explorem essa ótima ferramenta chamada Kaniko. Não se esqueçam de compartilhar em suas redes sociais.
Até a próxima.
REFERÊNCIAS
https://github.com/GoogleContainerTools/kaniko
https://docs.gitlab.com/ee/ci/docker/using_kaniko.html
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
CURSOSCONSULTORIAทีเด็ด บอลเต็ง 99 วันนี้
About author
Você pode gostar também
Monitoramento Contínuo: A chave para uma infraestrutura de TI sustentável
Eventualmente, mesmo os sistemas e infraestruturas mais sustentáveis precisarão acompanhar os esforços para a prevenção. Por isso, o Continuous monitoring (monitoramento contínuo) é essencial. Técnicas de monitoramento contínuo costumam melhorar
Automatizando Tarefas com Shell Script
Já se aventurou pela linha de comando de sistemas Unix ou Linux? Se sua resposta for sim, então provavelmente já ouviu falar de Shell Script. Mas o que seria exatamente
Guia prático: Como configurar e usar o Minio Server em sua infraestrutura
Minio é um storage de objetos, de alta performance e distribuído. A grande vantagem de usá-lo, reside em sua total compatibilidade com o Amazon S3. Neste artigo explico como subir











