From 0c12a7d12ab4e0be3df68462d8fd8999140a1d30 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Thu, 30 Sep 2021 21:43:34 -0700 Subject: [PATCH] github action build rocksdb image --- .github/workflows/container_release.yml | 62 ++++++++++++++++++------- docker/Dockerfile.go_rocksdb | 14 ------ docker/Dockerfile.rocksdb_large | 14 +++++- 3 files changed, 59 insertions(+), 31 deletions(-) delete mode 100644 docker/Dockerfile.go_rocksdb diff --git a/.github/workflows/container_release.yml b/.github/workflows/container_release.yml index b345b1b86..f008f0e70 100644 --- a/.github/workflows/container_release.yml +++ b/.github/workflows/container_release.yml @@ -45,14 +45,6 @@ jobs: with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Login to GHCR - if: github.event_name != 'pull_request' - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ secrets.GHCR_USERNAME }} - password: ${{ secrets.GHCR_TOKEN }} - name: Build uses: docker/build-push-action@v2 @@ -102,14 +94,6 @@ jobs: with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Login to GHCR - if: github.event_name != 'pull_request' - uses: docker/login-action@v1 - with: - registry: ghcr.io - username: ${{ secrets.GHCR_USERNAME }} - password: ${{ secrets.GHCR_TOKEN }} - name: Build uses: docker/build-push-action@v2 @@ -120,3 +104,49 @@ jobs: platforms: linux/amd64, linux/arm, linux/arm64, linux/386 tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} + + build-large-release-container_rocksdb: + runs-on: [ubuntu-latest] + + steps: + - + name: Checkout + uses: actions/checkout@v2 + - + name: Docker meta + id: docker_meta + uses: docker/metadata-action@v3 + with: + images: | + chrislusf/seaweedfs + tags: | + type=ref,event=tag,suffix=_large_disk_rocksdb + flavor: | + latest=false + labels: | + org.opencontainers.image.title=seaweedfs + org.opencontainers.image.description=SeaweedFS is a distributed storage system for blobs, objects, files, and data lake, to store and serve billions of files fast! + org.opencontainers.image.vendor=Chris Lu + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to Docker Hub + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - + name: Build + uses: docker/build-push-action@v2 + with: + context: ./docker + push: ${{ github.event_name != 'pull_request' }} + file: ./docker/Dockerfile.rocksdb_large + platforms: linux/amd64 + tags: ${{ steps.docker_meta.outputs.tags }} + labels: ${{ steps.docker_meta.outputs.labels }} diff --git a/docker/Dockerfile.go_rocksdb b/docker/Dockerfile.go_rocksdb deleted file mode 100644 index 18367e40c..000000000 --- a/docker/Dockerfile.go_rocksdb +++ /dev/null @@ -1,14 +0,0 @@ -FROM amd64/golang:1.17-buster - -RUN apt-get update -RUN apt-get install -y build-essential libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev libzstd-dev - -ENV ROCKSDB_VERSION v6.22.1 - -# build RocksDB -RUN cd /tmp && \ - git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb --depth 1 --single-branch --branch $ROCKSDB_VERSION && \ - cd rocksdb && \ - make static_lib && \ - make install-static - diff --git a/docker/Dockerfile.rocksdb_large b/docker/Dockerfile.rocksdb_large index 719e0afd8..f3bc7eb7d 100644 --- a/docker/Dockerfile.rocksdb_large +++ b/docker/Dockerfile.rocksdb_large @@ -1,4 +1,16 @@ -FROM chrislusf/gorocksdb as builder +FROM golang:1.17-buster as builder + +RUN apt-get update +RUN apt-get install -y build-essential libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev libzstd-dev + +ENV ROCKSDB_VERSION v6.22.1 + +# build RocksDB +RUN cd /tmp && \ + git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb --depth 1 --single-branch --branch $ROCKSDB_VERSION && \ + cd rocksdb && \ + make static_lib && \ + make install-static ENV CGO_CFLAGS "-I/tmp/rocksdb/include" ENV CGO_LDFLAGS "-L/tmp/rocksdb -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4 -lzstd"