mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-12-25 16:15:17 +00:00
Merge branch 'release_image' into 'v1.4.19'
create docker image based on release binaries See merge request quilibrium/ceremonyclient!4
This commit is contained in:
commit
0cbc0d0d31
@ -6,9 +6,9 @@ The only requirements are `git` (to checkout the repository) and docker (to buil
|
|||||||
Golang does not have to be installed, the docker image build process uses a build stage that provides the
|
Golang does not have to be installed, the docker image build process uses a build stage that provides the
|
||||||
correct Go environment and compiles the node down to one command.
|
correct Go environment and compiles the node down to one command.
|
||||||
|
|
||||||
In the repository root folder, where the [Dockerfile](Dockerfile) file is, build the docker image:
|
In the repository root folder, where the [Dockerfile.source](Dockerfile.source) file is, build the docker image:
|
||||||
```shell
|
```shell
|
||||||
docker build --build-arg GIT_COMMIT=$(git log -1 --format=%h) -t quilibrium -t quilibrium:1.4.16 .
|
docker build -f Dockerfile.source --build-arg GIT_COMMIT=$(git log -1 --format=%h) -t quilibrium -t quilibrium:1.4.16 .
|
||||||
```
|
```
|
||||||
|
|
||||||
Use latest version instead of `1.4.16`.
|
Use latest version instead of `1.4.16`.
|
||||||
|
55
Dockerfile.release
Normal file
55
Dockerfile.release
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
FROM golang:1.20.14-alpine3.19 as build
|
||||||
|
|
||||||
|
ARG NODE_VERSION
|
||||||
|
ARG MAX_KEY_ID
|
||||||
|
|
||||||
|
ENV GOEXPERIMENT=arenas
|
||||||
|
|
||||||
|
WORKDIR /opt/ceremonyclient
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN cp "node/node-${NODE_VERSION}-linux-amd64" "node/node"
|
||||||
|
RUN cp "node/node-${NODE_VERSION}-linux-amd64.dgst" "node/node.dgst"
|
||||||
|
RUN for i in $(seq 1 ${MAX_KEY_ID}); do \
|
||||||
|
if [ -f node/node-${NODE_VERSION}-linux-amd64.dgst.sig.${i} ]; then \
|
||||||
|
cp "node/node-${NODE_VERSION}-linux-amd64.dgst.sig.${i}" "node/node.dgst.sig.${i}"; \
|
||||||
|
fi \
|
||||||
|
done
|
||||||
|
|
||||||
|
WORKDIR /opt/ceremonyclient/client
|
||||||
|
|
||||||
|
RUN go build -o qclient ./main.go
|
||||||
|
|
||||||
|
RUN go install github.com/fullstorydev/grpcurl/cmd/grpcurl@v1.9.1
|
||||||
|
|
||||||
|
FROM alpine:3.19
|
||||||
|
|
||||||
|
ARG NODE_VERSION
|
||||||
|
ARG GIT_REPO
|
||||||
|
ARG GIT_BRANCH
|
||||||
|
ARG GIT_COMMIT
|
||||||
|
|
||||||
|
ENV GOEXPERIMENT=arenas
|
||||||
|
|
||||||
|
LABEL org.opencontainers.image.title="Quilibrium Network Node"
|
||||||
|
LABEL org.opencontainers.image.description="Quilibrium is a decentralized alternative to platform as a service providers."
|
||||||
|
LABEL org.opencontainers.image.version=$NODE_VERSION
|
||||||
|
LABEL org.opencontainers.image.vendor=Quilibrium
|
||||||
|
LABEL org.opencontainers.image.url=https://quilibrium.com/
|
||||||
|
LABEL org.opencontainers.image.documentation=https://quilibrium.com/docs
|
||||||
|
LABEL org.opencontainers.image.source=$GIT_REPO
|
||||||
|
LABEL org.opencontainers.image.ref.name=$GIT_BRANCH
|
||||||
|
LABEL org.opencontainers.image.revision=$GIT_COMMIT
|
||||||
|
|
||||||
|
COPY --from=build /opt/ceremonyclient/node/node /usr/local/bin
|
||||||
|
COPY --from=build /opt/ceremonyclient/node/node.dgst /usr/local/bin
|
||||||
|
COPY --from=build /opt/ceremonyclient/node/node.dgst.sig.* /usr/local/bin
|
||||||
|
|
||||||
|
COPY --from=build /opt/ceremonyclient/client/qclient /usr/local/bin
|
||||||
|
|
||||||
|
COPY --from=build /go/bin/grpcurl /usr/local/bin
|
||||||
|
|
||||||
|
WORKDIR /root
|
||||||
|
|
||||||
|
ENTRYPOINT ["node"]
|
@ -5,6 +5,9 @@ version: '3'
|
|||||||
dotenv:
|
dotenv:
|
||||||
- '.env'
|
- '.env'
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOCKER_BUILDKIT: '1'
|
||||||
|
|
||||||
vars:
|
vars:
|
||||||
VERSION:
|
VERSION:
|
||||||
sh: cat node/config/version.go | grep -A 1 "func GetVersion() \[\]byte {" | grep -Eo '0x[0-9a-fA-F]+' | xargs printf "%d.%d.%d"
|
sh: cat node/config/version.go | grep -A 1 "func GetVersion() \[\]byte {" | grep -Eo '0x[0-9a-fA-F]+' | xargs printf "%d.%d.%d"
|
||||||
@ -14,6 +17,7 @@ vars:
|
|||||||
sh: git rev-parse --abbrev-ref HEAD
|
sh: git rev-parse --abbrev-ref HEAD
|
||||||
GIT_COMMIT:
|
GIT_COMMIT:
|
||||||
sh: git log -1 --format=%h
|
sh: git log -1 --format=%h
|
||||||
|
MAX_KEY_ID: 17
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
status:
|
status:
|
||||||
@ -24,33 +28,54 @@ tasks:
|
|||||||
- echo -n "Repo :" && echo " {{.GIT_REPO}}"
|
- echo -n "Repo :" && echo " {{.GIT_REPO}}"
|
||||||
- echo -n "Branch :" && echo " {{.GIT_BRANCH}}"
|
- echo -n "Branch :" && echo " {{.GIT_BRANCH}}"
|
||||||
- echo -n "Commit :" && echo " {{.GIT_COMMIT}}"
|
- echo -n "Commit :" && echo " {{.GIT_COMMIT}}"
|
||||||
|
- echo -n "Max Key ID:" && echo " {{.MAX_KEY_ID}}"
|
||||||
silent: true
|
silent: true
|
||||||
|
|
||||||
build:
|
build:source:
|
||||||
desc: Build the Quilibrium docker image, unless it is already built.
|
desc: Build the Quilibrium docker image from source.
|
||||||
cmds:
|
cmds:
|
||||||
- |
|
- |
|
||||||
docker build \
|
docker build \
|
||||||
|
-f Dockerfile.source \
|
||||||
--build-arg NODE_VERSION={{.VERSION}} \
|
--build-arg NODE_VERSION={{.VERSION}} \
|
||||||
--build-arg GIT_REPO={{.GIT_REPO}} \
|
--build-arg GIT_REPO={{.GIT_REPO}} \
|
||||||
--build-arg GIT_BRANCH={{.GIT_BRANCH}} \
|
--build-arg GIT_BRANCH={{.GIT_BRANCH}} \
|
||||||
--build-arg GIT_COMMIT={{.GIT_COMMIT}} \
|
--build-arg GIT_COMMIT={{.GIT_COMMIT}} \
|
||||||
-t ${QUILIBRIUM_IMAGE_NAME:-quilibrium}:{{.VERSION}} \
|
-t ${QUILIBRIUM_IMAGE_NAME:-quilibrium}:{{.VERSION}}-source \
|
||||||
-t ${QUILIBRIUM_IMAGE_NAME:-quilibrium}:latest \
|
-t ${QUILIBRIUM_IMAGE_NAME:-quilibrium}:source \
|
||||||
.
|
.
|
||||||
status:
|
status:
|
||||||
- |
|
- |
|
||||||
docker image inspect \
|
docker image inspect \
|
||||||
${QUILIBRIUM_IMAGE_NAME:-quilibrium}:{{.VERSION}} \
|
${QUILIBRIUM_IMAGE_NAME:-quilibrium}:{{.VERSION}}-source \
|
||||||
>/dev/null 2>/dev/null
|
>/dev/null 2>/dev/null
|
||||||
|
|
||||||
github:login:
|
build:release:
|
||||||
desc: Login to GitHub container registry.
|
desc: Build the Quilibrium docker image from release binaries.
|
||||||
|
aliases:
|
||||||
|
- build
|
||||||
cmds:
|
cmds:
|
||||||
- echo $GITHUB_TOKEN | docker login ghcr.io -u $GITHUB_USERNAME --password-stdin
|
- |
|
||||||
|
docker build \
|
||||||
|
-f Dockerfile.release \
|
||||||
|
--build-arg NODE_VERSION={{.VERSION}} \
|
||||||
|
--build-arg GIT_REPO={{.GIT_REPO}} \
|
||||||
|
--build-arg GIT_BRANCH={{.GIT_BRANCH}} \
|
||||||
|
--build-arg GIT_COMMIT={{.GIT_COMMIT}} \
|
||||||
|
--build-arg MAX_KEY_ID={{.MAX_KEY_ID}} \
|
||||||
|
-t ${QUILIBRIUM_IMAGE_NAME:-quilibrium}:{{.VERSION}}-release \
|
||||||
|
-t ${QUILIBRIUM_IMAGE_NAME:-quilibrium}:release \
|
||||||
|
.
|
||||||
|
status:
|
||||||
|
- |
|
||||||
|
docker image inspect \
|
||||||
|
${QUILIBRIUM_IMAGE_NAME:-quilibrium}:{{.VERSION}}-release \
|
||||||
|
>/dev/null 2>/dev/null
|
||||||
|
|
||||||
docker:login:
|
docker:login:
|
||||||
desc: Login to Docker hub
|
desc: Login to Docker hub
|
||||||
|
aliases:
|
||||||
|
- login
|
||||||
cmds:
|
cmds:
|
||||||
- echo $DOCKER_TOKEN | docker login -u $DOCKER_USERNAME --password-stdin
|
- echo $DOCKER_TOKEN | docker login -u $DOCKER_USERNAME --password-stdin
|
||||||
|
|
||||||
|
@ -7,13 +7,6 @@ services:
|
|||||||
node:
|
node:
|
||||||
image: ${QUILIBRIUM_IMAGE_NAME:-quilibrium}
|
image: ${QUILIBRIUM_IMAGE_NAME:-quilibrium}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
deploy:
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: '32G'
|
|
||||||
reservations:
|
|
||||||
cpus: '12'
|
|
||||||
memory: '16G'
|
|
||||||
environment:
|
environment:
|
||||||
- DEFAULT_LISTEN_GRPC_MULTIADDR=/ip4/0.0.0.0/tcp/8337
|
- DEFAULT_LISTEN_GRPC_MULTIADDR=/ip4/0.0.0.0/tcp/8337
|
||||||
- DEFAULT_LISTEN_REST_MULTIADDR=/ip4/0.0.0.0/tcp/8338
|
- DEFAULT_LISTEN_REST_MULTIADDR=/ip4/0.0.0.0/tcp/8338
|
||||||
@ -27,7 +20,7 @@ services:
|
|||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 1m
|
start_period: 15m
|
||||||
volumes:
|
volumes:
|
||||||
- ./.config:/root/.config
|
- ./.config:/root/.config
|
||||||
logging:
|
logging:
|
||||||
|
@ -11,7 +11,7 @@ env:
|
|||||||
vars:
|
vars:
|
||||||
VERSION:
|
VERSION:
|
||||||
sh: cat ../node/config/version.go | grep -A 1 "func GetVersion() \[\]byte {" | grep -Eo '0x[0-9a-fA-F]+' | xargs printf "%d.%d.%d"
|
sh: cat ../node/config/version.go | grep -A 1 "func GetVersion() \[\]byte {" | grep -Eo '0x[0-9a-fA-F]+' | xargs printf "%d.%d.%d"
|
||||||
MAX_KEY_ID: 15
|
MAX_KEY_ID: 17
|
||||||
QUILIBRIUM_SIGNERS_IMAGE_NAME: 'quilibrium-signers'
|
QUILIBRIUM_SIGNERS_IMAGE_NAME: 'quilibrium-signers'
|
||||||
USER_NAME:
|
USER_NAME:
|
||||||
sh: whoami
|
sh: whoami
|
||||||
@ -27,6 +27,7 @@ tasks:
|
|||||||
- echo -n "Priv Key Path:" && echo " {{.SIGNING_KEY_PATH}}"
|
- echo -n "Priv Key Path:" && echo " {{.SIGNING_KEY_PATH}}"
|
||||||
- echo -n "Pub Key Path:" && echo " {{.SIGNING_PUB_KEY_PATH}}"
|
- echo -n "Pub Key Path:" && echo " {{.SIGNING_PUB_KEY_PATH}}"
|
||||||
- echo -n "Key ID :" && echo " {{.SIGNING_KEY_ID}}"
|
- echo -n "Key ID :" && echo " {{.SIGNING_KEY_ID}}"
|
||||||
|
- echo -n "Max Key ID :" && echo " {{.MAX_KEY_ID}}"
|
||||||
silent: true
|
silent: true
|
||||||
|
|
||||||
hex:
|
hex:
|
||||||
|
Loading…
Reference in New Issue
Block a user