- Enable codex_enable_api_debug_peers - Add NAT_IP_AUTO for Dist-Tests
This commit is contained in:
parent
711e5e09d1
commit
6dd7e55719
|
@ -22,6 +22,10 @@ env:
|
||||||
DOCKER_FILE: docker/codex.Dockerfile
|
DOCKER_FILE: docker/codex.Dockerfile
|
||||||
DOCKER_REPO: codexstorage/nim-codex
|
DOCKER_REPO: codexstorage/nim-codex
|
||||||
MAKE_PARALLEL: 4
|
MAKE_PARALLEL: 4
|
||||||
|
NIMFLAGS: '-d:disableMarchNative -d:codex_enable_api_debug_peers=true'
|
||||||
|
NIMFLAGS_RELEASE: '-d:disableMarchNative'
|
||||||
|
NAT_IP_AUTO: true
|
||||||
|
NAT_IP_AUTO_RELEASE: false
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
@ -57,6 +61,14 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Docker - Variables
|
||||||
|
run: |
|
||||||
|
# Release
|
||||||
|
if [[ ${{ startsWith(github.ref, 'refs/tags/') }} == "true" ]]; then
|
||||||
|
echo "NIMFLAGS=${{ env.NIMFLAGS_RELEASE }}" >>$GITHUB_ENV
|
||||||
|
echo "NAT_IP_AUTO=${{ env.NAT_IP_AUTO_RELEASE }}" >>$GITHUB_ENV
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Docker - Meta
|
- name: Docker - Meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v4
|
uses: docker/metadata-action@v4
|
||||||
|
@ -83,39 +95,17 @@ jobs:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Docker - Build and export to Docker
|
- name: Docker - Build and Push
|
||||||
uses: docker/build-push-action@v4
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: ${{ env.DOCKER_FILE }}
|
|
||||||
platforms: ${{ env.PLATFORM }}
|
|
||||||
build-args: |
|
|
||||||
MAKE_PARALLEL=${{ env.MAKE_PARALLEL }}
|
|
||||||
load: true
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
|
|
||||||
- name: Docker - Minify image
|
|
||||||
uses: kitabisa/docker-slim-action@v1
|
|
||||||
id: slim
|
|
||||||
env:
|
|
||||||
DSLIM_HTTP_PROBE: false
|
|
||||||
with:
|
|
||||||
target: ${{ steps.meta.outputs.tags }}
|
|
||||||
overwrite: true
|
|
||||||
|
|
||||||
- name: Docker - Show slim report
|
|
||||||
run: echo "${REPORT}" | jq -r
|
|
||||||
env:
|
|
||||||
REPORT: ${{ steps.slim.outputs.report }}
|
|
||||||
|
|
||||||
- name: Docker - Push to Docker registry
|
|
||||||
uses: docker/build-push-action@v4
|
uses: docker/build-push-action@v4
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ${{ env.DOCKER_FILE }}
|
file: ${{ env.DOCKER_FILE }}
|
||||||
platforms: ${{ env.PLATFORM }}
|
platforms: ${{ env.PLATFORM }}
|
||||||
push: true
|
push: true
|
||||||
|
build-args: |
|
||||||
|
MAKE_PARALLEL=${{ env.MAKE_PARALLEL }}
|
||||||
|
NIMFLAGS=${{ env.NIMFLAGS }}
|
||||||
|
NAT_IP_AUTO=${{ env.NAT_IP_AUTO }}
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
It means that at the image run it will just run `codex` application without any arguments and we can pass them as a regular arguments, by overriding command
|
It means that at the image run it will just run `codex` application without any arguments and we can pass them as a regular arguments, by overriding command
|
||||||
```shell
|
```shell
|
||||||
docker run codexstorage/nim-codex codex --api-bindaddr=0.0.0.0
|
docker run codexstorage/nim-codex codex --api-bindaddr=0.0.0.0 --api-port=8080
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,6 +39,12 @@
|
||||||
|
|
||||||
We can configure Codex using [Environment variables](../README#environment-variables) and [docker-compose.yaml](docker-compose.yaml) file can be useful as an example.
|
We can configure Codex using [Environment variables](../README#environment-variables) and [docker-compose.yaml](docker-compose.yaml) file can be useful as an example.
|
||||||
|
|
||||||
|
We also added a temporary environment variable `NAT_IP_AUTO` to the entrypoint which is set as `false` for releases and ` true` for regular builds. That approach is useful for Dist-Tests.
|
||||||
|
```shell
|
||||||
|
# Disable NAT_IP_AUTO for regular builds
|
||||||
|
docker run -e NAT_IP_AUTO=false codexstorage/nim-codex
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Slim
|
## Slim
|
||||||
1. Build the image using `docker build -t status-im/codexsetup:latest -f codex.Dockerfile ..`
|
1. Build the image using `docker build -t status-im/codexsetup:latest -f codex.Dockerfile ..`
|
||||||
|
|
|
@ -3,14 +3,15 @@ ARG BUILDER=ubuntu:lunar-20230415
|
||||||
ARG IMAGE=${BUILDER}
|
ARG IMAGE=${BUILDER}
|
||||||
ARG BUILD_HOME=/src
|
ARG BUILD_HOME=/src
|
||||||
ARG MAKE_PARALLEL=${MAKE_PARALLEL:-4}
|
ARG MAKE_PARALLEL=${MAKE_PARALLEL:-4}
|
||||||
ARG MAKE_PARAMS=${MAKE_PARAMS:-NIM_PARAMS="-d:disableMarchNative"}
|
ARG NIMFLAGS="${NIMFLAGS:-"-d:disableMarchNative"}"
|
||||||
ARG APP_HOME=/codex
|
ARG APP_HOME=/codex
|
||||||
|
ARG NAT_IP_AUTO=${NAT_IP_AUTO:-false}
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
FROM ${BUILDER} AS builder
|
FROM ${BUILDER} AS builder
|
||||||
ARG BUILD_HOME
|
ARG BUILD_HOME
|
||||||
ARG MAKE_PARALLEL
|
ARG MAKE_PARALLEL
|
||||||
ARG MAKE_PARAMS
|
ARG NIMFLAGS
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y git cmake curl make bash lcov build-essential nim
|
RUN apt-get update && apt-get install -y git cmake curl make bash lcov build-essential nim
|
||||||
RUN echo 'export NIMBLE_DIR="${HOME}/.nimble"' >> "${HOME}/.bash_env"
|
RUN echo 'export NIMBLE_DIR="${HOME}/.nimble"' >> "${HOME}/.bash_env"
|
||||||
|
@ -20,16 +21,18 @@ WORKDIR ${BUILD_HOME}
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN make clean
|
RUN make clean
|
||||||
RUN make -j ${MAKE_PARALLEL} update
|
RUN make -j ${MAKE_PARALLEL} update
|
||||||
RUN make -j ${MAKE_PARALLEL} ${MAKE_PARAMS}
|
RUN make -j ${MAKE_PARALLEL}
|
||||||
|
|
||||||
# Create
|
# Create
|
||||||
FROM ${IMAGE}
|
FROM ${IMAGE}
|
||||||
ARG BUILD_HOME
|
ARG BUILD_HOME
|
||||||
ARG APP_HOME
|
ARG APP_HOME
|
||||||
|
ARG NAT_IP_AUTO
|
||||||
|
|
||||||
WORKDIR ${APP_HOME}
|
WORKDIR ${APP_HOME}
|
||||||
COPY --from=builder ${BUILD_HOME}/build/codex /usr/local/bin
|
COPY --from=builder ${BUILD_HOME}/build/codex /usr/local/bin
|
||||||
COPY --chmod=0755 docker/docker-entrypoint.sh /
|
COPY --chmod=0755 docker/docker-entrypoint.sh /
|
||||||
RUN apt-get update && apt-get install -y libgomp1 bash && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y libgomp1 bash && rm -rf /var/lib/apt/lists/*
|
||||||
|
ENV NAT_IP_AUTO=${NAT_IP_AUTO}
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
CMD ["codex"]
|
CMD ["codex"]
|
||||||
|
|
|
@ -1,5 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Parameters
|
||||||
|
if [[ "${NAT_IP_AUTO}" == "true" ]]; then
|
||||||
|
export CODEX_NAT=$(hostname --ip-address)
|
||||||
|
echo "Set CODEX_NAT: ${CODEX_NAT}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Run
|
# Run
|
||||||
echo "Run Codex node"
|
echo "Run Codex node"
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|
Loading…
Reference in New Issue