diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..201ee7a --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,68 @@ +name: Docker + +on: + push: + # Publish `main` as Docker `latest` image. + branches: + - main + + # Publish `v1.2.3` tags as releases. + tags: + - v* + + +env: + # DOCKER_REGISTRY: kemansel.azurecr.io + DOCKER_IMAGE: youssubuntu/airflow:latest + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DOCKER_TARGET_PLATFORM: linux/arm/v7 + +jobs: + # Push image to GitHub Packages. + # See also https://docs.docker.com/docker-hub/builds/ + + buildx: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + # https://github.com/docker/setup-qemu-action + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + # https://github.com/docker/setup-buildx-action + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + # - name: Cache Docker layers + # uses: actions/cache@v2 + # id: cache + # with: + # path: /tmp/.buildx-cache + # key: ${{ runner.os }}-buildx-${{ github.sha }} + # restore-keys: | + # ${{ runner.os }}-buildx- + + - name: Docker Buildx (build) + run: | + pwd && ls && docker buildx build \ + --platform linux/arm64 \ + --output "type=image,push=false" \ + --tag ${{ env.DOCKER_IMAGE }} \ + --file airflow_dir/Dockerfile ./ + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Docker Buildx (push) + run: | + docker buildx build \ + --platform linux/arm64 \ + --output "type=image,push=true" \ + --tag ${{ env.DOCKER_IMAGE }} \ + --file airflow_dir/Dockerfile ./ + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env.DOCKER_IMAGE }} \ No newline at end of file diff --git a/airflow_dir/Dockerfile b/airflow_dir/Dockerfile index bbb6c3f..04ea38e 100755 --- a/airflow_dir/Dockerfile +++ b/airflow_dir/Dockerfile @@ -4,7 +4,8 @@ # BUILD: docker build --rm -t puckel/docker-airflow . # SOURCE: https://github.com/puckel/docker-airflow -FROM python:3.7-slim-buster +# FROM python:3.7-slim-buster +FROM arm64v8/python:3.7.10-buster LABEL maintainer="Puckel_" # Never prompt the user for choices on installation/configuration of packages @@ -50,6 +51,7 @@ RUN set -ex \ rsync \ netcat \ locales \ + libpq5 \ && sed -i 's/^# en_US.UTF-8 UTF-8$/en_US.UTF-8 UTF-8/g' /etc/locale.gen \ && locale-gen \ && update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 \ diff --git a/datafuel.docker-compose.yml b/datafuel.docker-compose.yml index 25f08c9..6de9a96 100644 --- a/datafuel.docker-compose.yml +++ b/datafuel.docker-compose.yml @@ -17,7 +17,7 @@ services: # - ./pgdata:/var/lib/postgresql/data/pgdata webserver: - image: datafuel/airflow:latest + image: youssubuntu/airflow:latest container_name: webserver restart: always depends_on: @@ -56,7 +56,7 @@ services: # retries: 3 flower: - image: datafuel/airflow:latest + image: youssubuntu/airflow:latest container_name: flower restart: always depends_on: @@ -73,7 +73,7 @@ services: command: airflow celery flower scheduler: - image: datafuel/airflow:latest + image: youssubuntu/airflow:latest container_name: scheduler restart: always depends_on: @@ -101,7 +101,7 @@ services: worker: - image: datafuel/airflow:latest + image: youssubuntu/airflow:latest container_name: worker restart: always depends_on: diff --git a/dev.docker-compose.yml b/dev.docker-compose.yml index 49aed17..a399e70 100644 --- a/dev.docker-compose.yml +++ b/dev.docker-compose.yml @@ -2,5 +2,5 @@ version: '2.1' services: airflow: - image: datafuel/airflow:latest + image: youssubuntu/airflow:latest build: ./airflow_dir \ No newline at end of file