mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 15:55:18 +00:00
ci: extract separate rocksdb base image (#1898)
* docker: separate rocksdb base image from build * ci: inject go build cache for docker img builds
This commit is contained in:
parent
3e877aca88
commit
f72b628b71
22
.github/workflows/ci-docker.yml
vendored
22
.github/workflows/ci-docker.yml
vendored
@ -50,6 +50,17 @@ jobs:
|
|||||||
username: ${{ inputs.dockerhub-username }}
|
username: ${{ inputs.dockerhub-username }}
|
||||||
password: ${{ secrets.CI_DOCKERHUB_TOKEN }}
|
password: ${{ secrets.CI_DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Go Build Cache for Docker
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: go-build-cache
|
||||||
|
key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }}
|
||||||
|
|
||||||
|
- name: inject go-build-cache into docker
|
||||||
|
uses: reproducible-containers/buildkit-cache-dance@v2.1.2
|
||||||
|
with:
|
||||||
|
cache-source: go-build-cache
|
||||||
|
|
||||||
# publish to docker hub, tag with short git hash
|
# publish to docker hub, tag with short git hash
|
||||||
- name: Build and push (goleveldb)
|
- name: Build and push (goleveldb)
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v5
|
||||||
@ -89,6 +100,17 @@ jobs:
|
|||||||
username: ${{ inputs.dockerhub-username }}
|
username: ${{ inputs.dockerhub-username }}
|
||||||
password: ${{ secrets.CI_DOCKERHUB_TOKEN }}
|
password: ${{ secrets.CI_DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Go Build Cache for Docker
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: go-build-cache
|
||||||
|
key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }}
|
||||||
|
|
||||||
|
- name: inject go-build-cache into docker
|
||||||
|
uses: reproducible-containers/buildkit-cache-dance@v2.1.2
|
||||||
|
with:
|
||||||
|
cache-source: go-build-cache
|
||||||
|
|
||||||
# publish to docker hub, tag with short git hash
|
# publish to docker hub, tag with short git hash
|
||||||
- name: Build and push (rocksdb)
|
- name: Build and push (rocksdb)
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v5
|
||||||
|
@ -1,23 +1,6 @@
|
|||||||
FROM golang:1.21-bullseye AS kava-builder
|
FROM kava/rocksdb:v8.10.1-go1.21 AS kava-builder
|
||||||
|
|
||||||
# Set up dependencies
|
RUN apt-get update
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y git make gcc libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Set working directory for the build
|
|
||||||
WORKDIR /root
|
|
||||||
# default home directory is /root
|
|
||||||
|
|
||||||
# install rocksdb
|
|
||||||
ARG rocksdb_version=v8.10.0
|
|
||||||
ENV ROCKSDB_VERSION=$rocksdb_version
|
|
||||||
|
|
||||||
RUN git clone https://github.com/facebook/rocksdb.git \
|
|
||||||
&& cd rocksdb \
|
|
||||||
&& git checkout $ROCKSDB_VERSION \
|
|
||||||
&& make -j$(nproc) install-shared \
|
|
||||||
&& ldconfig
|
|
||||||
|
|
||||||
WORKDIR /root/kava
|
WORKDIR /root/kava
|
||||||
# Copy dependency files first to facilitate dependency caching
|
# Copy dependency files first to facilitate dependency caching
|
||||||
|
22
Dockerfile-rocksdb-base
Normal file
22
Dockerfile-rocksdb-base
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# published to https://hub.docker.com/repository/docker/kava/rocksdb/tags
|
||||||
|
# docker buildx build --platform linux/amd64,linux/arm64 -t kava/rocksdb:v8.10.1-go1.21 -f Dockerfile-rocksdb-base . --push
|
||||||
|
FROM golang:1.21-bullseye
|
||||||
|
|
||||||
|
# Set up dependencies
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y git make gcc libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Set working directory for the build
|
||||||
|
WORKDIR /root
|
||||||
|
# default home directory is /root
|
||||||
|
|
||||||
|
# install rocksdb
|
||||||
|
ARG rocksdb_version=v8.10.0
|
||||||
|
ENV ROCKSDB_VERSION=$rocksdb_version
|
||||||
|
|
||||||
|
RUN git clone https://github.com/facebook/rocksdb.git \
|
||||||
|
&& cd rocksdb \
|
||||||
|
&& git checkout $ROCKSDB_VERSION \
|
||||||
|
&& make -j$(nproc) install-shared \
|
||||||
|
&& ldconfig
|
Loading…
Reference in New Issue
Block a user