vanilla-rtb dev docker image created automatically on every tagged release in GitHub main branch
1.4K
VanillaRTB Docker images have two layers (optionally three) of hierarchy:
!!! instructions for vanilla-rtb stack contributors only !!!
All steps below require the same pre-steps:
$ vanilla_env_ver=x.y.z
$ cd vanilla-rtb/docker
$ docker build --tag vanillartb/vanilla-base:${vanilla_env_ver} --file vanilla-base.Dockerfile ${PWD}
This is a side-package required to build boost and other dependencies keeping the production chain clean of build tools.
$ docker build --tag vanillartb/vanilla-deps:${vanilla_env_ver} --file vanilla-deps.Dockerfile $PWD
$ docker container run -a STDOUT --name vanilla-depsbox vanillartb/vanilla-deps:${vanilla_env_ver}
$ docker cp vanilla-depsbox:/root/deps ./deps
$ docker container rm vanilla-depsbox
$
$ docker build --tag vanillartb/vanilla-runtime:${vanilla_env_ver} --file vanilla-runtime.Dockerfile $PWD
$ /bin/rm -rf ./deps
Built automatically on hub.docker.com everytime we tag our git push.
$ docker build --tag vanillartb/vanilla-dev:${vanilla_env_ver} --file vanilla-dev.Dockerfile ${PWD}
$ vanilla_env_ver=a.b.c
$ vanilla_ver=x.y.z
$ cd vanilla-rtb/docker
$
$ docker container run -a STDOUT --name vanilla-buildbox vanillartb/vanilla-dev:${vanilla_env_ver}
$ docker cp vanilla-buildbox:/root/pkg ./pkg
$ docker container rm vanilla-buildbox
$
$ docker build --tag vanillartb/vanilla-prod:${vanilla_ver} --file vanilla-prod.Dockerfile ${PWD}
$ /bin/rm -rf ./pkg
$ vanilla_env_ver=x.y.z
$ docker login
$ docker push vanillartb/vanilla-base:${vanilla_env_ver}
$ docker push vanillartb/vanilla-deps:${vanilla_env_ver}
$ docker push vanillartb/vanilla-runtime:${vanilla_env_ver}
$ docker push vanillartb/vanilla-dev:${vanilla_env_ver}
$ docker tag vanillartb/vanilla-dev:${vanilla_env_ver} vanillartb/vanilla-dev:latest
$ docker push vanillartb/vanilla-prod:${vanilla_env_ver}
$ docker tag vanillartb/vanilla-prod:${vanilla_ver} vanillartb/vanilla-prod:latest
$ docker push vanillartb/vanilla-prod:latest
$ docker login
$ docker run --net=host -it --name vanilla-devbox vanillartb/vanilla-dev:latest
$ docker run --net=host -it --name vanilla-prodbox vanillartb/vanilla-prod:latest
root@default:~/pkg/vanilla-rtb/snapshot/bin#
/root/build - directory used to build vanilla-rtb binaries ( staging directory )
/root/pkg - directory where cmake had installed binaries from staging directory
/root/code - directory holding source fetched from vanilla-rtb github repository used in the build
$ docker run --net=host --name vanilla-redis -d redis
$ docker run --net=host -it --name vanilla-prodbox vanillartb/vanilla-prod:latest
## see images installed
sudo docker image ls
## remove stored image by id
sudo docker image rm vanillartb/vanilla-prod
sudo docker image rm redis
## remove container to restart with different params
sudo docker rm vanilla-prodbox
## stop running container
sudo docker stop vanilla-prodbox
## start known container
sudo docker start vanilla-prodbox
## attach shell to running container
sudo docker attach vanilla-prodbox
running docker with manual port forwarding command --publish e.g -p8080:9081 has 20-30% performace degradation due to this option utilizing bridge driver, unless it has to be mapped using -p8080:9081 avoid for performance issues! The most performant network solution is --net=host ( exposes all container ports to host ) however vanilla-rtb ports in examples/config.cfg file may not be open on the cloud/host server therefore you have to think of shipping config with docker container per installation or starting stack with custom command line arguments ( --bidder.port=8080 ) or starting docker with shared host/container file system ( please refer to docker volume -v flag )
$ sudo docker network ls
NETWORK ID NAME DRIVER SCOPE
db0004be8eff bridge bridge local
42cee521962a host host local
23f65108302b none null local
Debian Releases
Debian Docker Images
Dockerfile Reference
Content type
Image
Digest
Size
202.6 MB
Last updated
almost 8 years ago
docker pull vanillartb/vanilla-dev