From 3637b5b9f05a2580bb75bc3e6ca8372f973b3c39 Mon Sep 17 00:00:00 2001 From: xuwenyihust Date: Sat, 27 Apr 2024 11:17:03 +0800 Subject: [PATCH] Add Docker build and push workflows for History Server, Notebook, and Spark --- .../workflows/build-docker-history-server.yml | 27 +++++++++++++++ .github/workflows/build-docker-notebook.yml | 27 +++++++++++++++ .github/workflows/build-docker-spark.yml | 28 ++++++++++++++++ .github/workflows/build-docker.yml | 33 ------------------- docker-compose.yaml | 6 ++-- .../Dockerfile | 0 .../Dockerfile} | 0 .../gcs_save_hook.py | 0 .../jupyter_notebook_config.py | 0 .../{jupyter-notebook => notebook}/startup.py | 0 .../Dockerfile.pyspark => spark/Dockerfile} | 0 11 files changed, 85 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/build-docker-history-server.yml create mode 100644 .github/workflows/build-docker-notebook.yml create mode 100644 .github/workflows/build-docker-spark.yml delete mode 100644 .github/workflows/build-docker.yml rename docker/{spark-history-server => history-server}/Dockerfile (100%) rename docker/{jupyter-notebook/Dockerfile.notebook => notebook/Dockerfile} (100%) rename docker/{jupyter-notebook => notebook}/gcs_save_hook.py (100%) rename docker/{jupyter-notebook => notebook}/jupyter_notebook_config.py (100%) rename docker/{jupyter-notebook => notebook}/startup.py (100%) rename docker/{jupyter-notebook/Dockerfile.pyspark => spark/Dockerfile} (100%) diff --git a/.github/workflows/build-docker-history-server.yml b/.github/workflows/build-docker-history-server.yml new file mode 100644 index 0000000..b09fccd --- /dev/null +++ b/.github/workflows/build-docker-history-server.yml @@ -0,0 +1,27 @@ +name: Build Docker - History Server + +on: + push: + paths: + - 'docker/history-server/**' +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Docker Build & Push + run: | + timestamp=$(date +"%Y%m%d%H%M%S") + + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/history-server:$timestamp -f docker/history-server/Dockerfile ./docker/history-server + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/history-server:$timestamp ${{ secrets.DOCKERHUB_USERNAME }}/history-server:latest + + docker push ${{ secrets.DOCKERHUB_USERNAME }}/history-server:$timestamp + docker push ${{ secrets.DOCKERHUB_USERNAME }}/history-server:latest diff --git a/.github/workflows/build-docker-notebook.yml b/.github/workflows/build-docker-notebook.yml new file mode 100644 index 0000000..ebf68e6 --- /dev/null +++ b/.github/workflows/build-docker-notebook.yml @@ -0,0 +1,27 @@ +name: Build Docker - Notebook + +on: + push: + paths: + - 'docker/notebook/**' +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Docker Build & Push + run: | + timestamp=$(date +"%Y%m%d%H%M%S") + + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/notebook:$timestamp -f docker/notebook/Dockerfile ./docker/notebook + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/notebook:$timestamp ${{ secrets.DOCKERHUB_USERNAME }}/notebook:latest + + docker push ${{ secrets.DOCKERHUB_USERNAME }}/notebook:$timestamp + docker push ${{ secrets.DOCKERHUB_USERNAME }}/notebook:latest \ No newline at end of file diff --git a/.github/workflows/build-docker-spark.yml b/.github/workflows/build-docker-spark.yml new file mode 100644 index 0000000..b396161 --- /dev/null +++ b/.github/workflows/build-docker-spark.yml @@ -0,0 +1,28 @@ +name: Build Docker - Spark + +on: + push: + paths: + - 'docker/spark/**' +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Log in to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Docker Build & Push + run: | + timestamp=$(date +"%Y%m%d%H%M%S") + + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/spark:$timestamp -f docker/spark/Dockerfile ./docker/spark + docker tag ${{ secrets.DOCKERHUB_USERNAME }}/spark:$timestamp ${{ secrets.DOCKERHUB_USERNAME }}/spark:latest + + docker push ${{ secrets.DOCKERHUB_USERNAME }}/spark:$timestamp + docker push ${{ secrets.DOCKERHUB_USERNAME }}/spark:latest + diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml deleted file mode 100644 index 589edbd..0000000 --- a/.github/workflows/build-docker.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Build Docker - -on: - push: - paths: - - 'docker/**' -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Log in to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Docker Build & Push - run: | - timestamp=$(date +"%Y%m%d%H%M%S") - - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/all-spark-notebook:$timestamp -f docker/jupyter-notebook/Dockerfile.notebook ./docker/jupyter-notebook - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/all-spark-notebook:$timestamp ${{ secrets.DOCKERHUB_USERNAME }}/all-spark-notebook:latest - - docker push ${{ secrets.DOCKERHUB_USERNAME }}/all-spark-notebook:$timestamp - docker push ${{ secrets.DOCKERHUB_USERNAME }}/all-spark-notebook:latest - - docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/spark-history-server:$timestamp -f docker/spark-history-server/Dockerfile ./docker/spark-history-server - docker tag ${{ secrets.DOCKERHUB_USERNAME }}/spark-history-server:$timestamp ${{ secrets.DOCKERHUB_USERNAME }}/spark-history-server:latest - - docker push ${{ secrets.DOCKERHUB_USERNAME }}/spark-history-server:$timestamp - docker push ${{ secrets.DOCKERHUB_USERNAME }}/spark-history-server:latest diff --git a/docker-compose.yaml b/docker-compose.yaml index 26d56a9..0808c05 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,6 +1,6 @@ services: - jupyter: - image: wenyixu101/all-spark-notebook:latest + notebook: + image: wenyixu101/notebook:latest container_name: notebook ports: - "8888:8888" @@ -16,7 +16,7 @@ services: memory: 1g spark-master: - image: wenyixu101/spark:3.5.0-python3.11 + image: wenyixu101/spark:latest container_name: spark-master ports: - "4040:4040" diff --git a/docker/spark-history-server/Dockerfile b/docker/history-server/Dockerfile similarity index 100% rename from docker/spark-history-server/Dockerfile rename to docker/history-server/Dockerfile diff --git a/docker/jupyter-notebook/Dockerfile.notebook b/docker/notebook/Dockerfile similarity index 100% rename from docker/jupyter-notebook/Dockerfile.notebook rename to docker/notebook/Dockerfile diff --git a/docker/jupyter-notebook/gcs_save_hook.py b/docker/notebook/gcs_save_hook.py similarity index 100% rename from docker/jupyter-notebook/gcs_save_hook.py rename to docker/notebook/gcs_save_hook.py diff --git a/docker/jupyter-notebook/jupyter_notebook_config.py b/docker/notebook/jupyter_notebook_config.py similarity index 100% rename from docker/jupyter-notebook/jupyter_notebook_config.py rename to docker/notebook/jupyter_notebook_config.py diff --git a/docker/jupyter-notebook/startup.py b/docker/notebook/startup.py similarity index 100% rename from docker/jupyter-notebook/startup.py rename to docker/notebook/startup.py diff --git a/docker/jupyter-notebook/Dockerfile.pyspark b/docker/spark/Dockerfile similarity index 100% rename from docker/jupyter-notebook/Dockerfile.pyspark rename to docker/spark/Dockerfile