| 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 |