nim-dagger/docker/README.md

58 lines
1.9 KiB
Markdown
Raw Normal View History

# Codex Docker Image
Codex provides pre-built docker images and they are stored in the [codexstorage/nim-codex](https://hub.docker.com/repository/docker/codexstorage/nim-codex) repository.
## Run
We can run Codex Docker image using CLI
```shell
# Default run
docker run --rm codexstorage/nim-codex
# Mount local datadir
docker run -v ./datadir:/datadir --rm codexstorage/nim-codex codex --data-dir=/datadir
```
And Docker Compose
```shell
# Run in detached mode
docker-compose up -d
```
## Arguments
Docker image is based on the [codex.Dockerfile](codex.Dockerfile) and there is
```
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["codex"]
```
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
docker run codexstorage/nim-codex codex --api-bindaddr=0.0.0.0 --api-port=8080
```
## Environment variables
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
1. Build the image using `docker build -t status-im/codexsetup:latest -f codex.Dockerfile ..`
2. The docker image can then be minified using [slim](https://github.com/slimtoolkit/slim). Install slim on your path and then run:
```shell
slim # brings up interactive prompt
>>> build --target status-im/codexsetup --http-probe-off true
```
3. This should output an image with name `status-im/codexsetup.slim`
4. We can then bring up the image using `docker-compose up -d`.