name: "Setup Docker Environment" description: "Reusable steps for setting up QEMU, Docker Buildx, DockerHub login, Supersetbot, and optionally Docker Compose" inputs: build: description: "Used for building?" required: false default: "false" dockerhub-user: description: "DockerHub username" required: false dockerhub-token: description: "DockerHub token" required: false install-docker-compose: description: "Flag to install Docker Compose" required: false default: "true" login-to-dockerhub: description: "Whether you want to log into dockerhub" required: false default: "true" outputs: {} runs: using: "composite" steps: - name: Set up QEMU if: ${{ inputs.build == 'true' }} uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx if: ${{ inputs.build == 'true' }} uses: docker/setup-buildx-action@v3 - name: Try to login to DockerHub if: ${{ inputs.login-to-dockerhub == 'true' }} continue-on-error: true uses: docker/login-action@v3 with: username: ${{ inputs.dockerhub-user }} password: ${{ inputs.dockerhub-token }} - name: Install Docker Compose if: ${{ inputs.install-docker-compose == 'true' }} shell: bash run: | sudo apt-get update sudo apt-get install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings # Download and save the Docker GPG key in the correct format curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # Ensure the key file is readable sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add the Docker repository using the correct key echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Update package lists and install Docker Compose plugin sudo apt update sudo apt install -y docker-compose-plugin - name: Docker Version Info shell: bash run: docker info