4
respostas

problema no docker-compose dentro da action

Bom dia, Estou tendo problema ao rodar as actions. Meu problema acontece no começo da execução dos jobs:

test (>=1.18, ubuntu-latest)
failed 3 minutes ago in 6s

O log possui o seguinte erro:

Run docker-compose build

  docker-compose build
  shell: /usr/bin/bash -e {0}
  env:
    HOST: localhost
    DBPORT: 5432
    USER: root
    PASSWORD: root
    DBNAME: root
/home/runner/work/_temp/11058bd8-837f-4ee7-9065-9db4d06e5832.sh: line 1: docker-compose: command not found
Error: Process completed with exit code 127.

Tentei copiar o conteudo do arquivo do EC2.yml de outros tópicos aqui do fórum,mas continua com o erro. Meu ec2 tá rodando o ubuntu 22. Esse é o problema? Eu não deveria instalar o docker-compose de alguma forma na máquina ec2?

4 respostas

Olá, Kevin. Tudo bem?

O erro "docker-compose: command not found" indica que o docker-compose não está instalado ou não está disponível no PATH do sistema.

Mesmo que seu EC2 esteja rodando o Ubuntu 22, o ambiente das GitHub Actions é separado. Para resolver esse problema, você pode adicionar um passo no seu arquivo de workflow para instalar o docker-compose antes de executar o comando docker-compose build. Aqui está um exemplo de como você pode fazer isso:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Check out code
      uses: actions/checkout@v2

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1

    - name: Install Docker Compose
      run: |
        sudo apt-get update
        sudo apt-get install -y docker-compose

    - name: Build with Docker Compose
      run: docker-compose build

Este exemplo instala o docker-compose usando o gerenciador de pacotes apt-get antes de tentar construir os containers. O comando de instalação do docker-compose precisa estar correto e compatível com a versão do Ubuntu que você está usando no ambiente das Actions.

Espero ter ajudado e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Olá Renan, tudo bem? Coloquei dessa forma aqui mas ainda assim recebo o erro do docker-compose Not Found.

name: Continuous Delivery

on:
  workflow_call:

jobs:

  EC2:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1
      
    - name: Install Docker Compose
      run: |
        sudo apt-get update
        suo apt-get install -y docker-compose

    - name: Build with Docker compose
      run: docker-compose build
      
    - name: Download a Build Artifact
      uses: actions/download-artifact@v4.0.0
      with:
        name: go-api

    - name: ssh deploy
      uses: easingthemes/ssh-deploy@main

Oi, Kevin!

Sobre sua última dúvida, percebi que o erro acontece porque há um pequeno erro de digitação no comando de instalação do docker-compose. No trecho que você colocou, a palavra suo está incorreta, o correto seria sudo.

Corrija essa linha do seu arquivo EC2.yml:


    - name: Install Docker Compose
      run: |
        sudo apt-get update
        sudo apt-get install -y docker-compose

Com isso, o docker-compose deve ser instalado corretamente no seu ambiente de GitHub Actions antes de rodar o comando docker-compose build.

Fico à disposição. Abraços e bons estudos!

Olá, Kevin

O erro “docker-compose: command not found” indica que o comando não está disponível no ambiente do runner. Atualmente, nas máquinas do GitHub Actions (por exemplo, ubuntu-latest) o Docker Compose V2 já vem instalado como plugin e é acessado com o comando docker compose (com espaço, e não com hífen).

Para corrigir, atualize os comandos do seu workflow. Por exemplo:

  • name: Build-DB run: docker compose build

  • name: Create-DB run: docker compose up -d