Skip to content

dev Docker container startup scripts

Sam edited this page May 3, 2023 · 28 revisions

Building images

From git repo root, create aw_base for most of the containers

docker build -t aw_base -f .\Dockerfile .

Setting up volume

Create a volume vol1 via docker volume create vol1

Then populate it by connecting to it, and git cloning the repo into it

docker run -w /home/app/mapf-multiagent-robot-planning/dev -d -it --name aw_dev --mount source=vol1,destination=/home/app aw_base

Inside the aw_dev container run

apk add git
cd /home/app
git clone <this repo>

Optional - Add existing databases to volume

docker cp .\world.db aw_dev:/home/app
docker cp .\orders.db aw_dev:/home/app

At this point docker compose should work

Docker compose

Use docker compose up -d to start up all containers

[Old] starting containers individually

Shared network for containers to talk on

docker network create aw-net

World Sim

docker run -w /home/app/mapf-multiagent-robot-planning/dev --net aw-net -d -it --name aw_world_sim --mount source=vol1,destination=/home/app aw_base:latest python -m world_sim reset

Order Processor

docker run -w /home/app/mapf-multiagent-robot-planning/dev --net aw-net -d -it --name aw_order_processor --mount source=vol1,destination=/home/app aw_base python -m inventory_management_system.order_processor reset

Robot Allocator

docker run -w /home/app/mapf-multiagent-robot-planning/dev --net aw-net --env ZMQ_WORLD_SIM_HOST=aw_world_sim -d -it --name aw_robot_allocator --mount source=vol1,destination=/home/app aw_base python -m robot_allocator

Flask IMS webserver (access via port 5000)

docker run -w /home/app/mapf-multiagent-robot-planning/dev --net aw-net -p 5000:5000 -d -it --name aw_web_flask --mount source=vol1,destination=/home/app aw_base flask --app inventory_management_system.order_tracking_web_server run --host=0.0.0.0

Node webserver (access via port 3000)

docker run -w /home/app/mapf-multiagent-robot-planning/dev -p 3000:3000 --net aw-net -e ZMQ_HOST='aw_world_sim' -d -it --name aw_web_node --mount source=vol1,destination=/home/app node:alpine /bin/sh -c "npm --prefix ./env_visualizer install && node env_visualizer/"

Testing alpine

docker run -w /home/app/mapf-multiagent-robot-planning/dev --net aw-net -d -it --name aw_dev --mount source=vol1,destination=/home/app aw_base

Running redis

docker run -d --net aw-net -p 6379:6379 --name aw_redis redis
Clone this wiki locally