Add README.md, which describes the usage of docker scripts
Signed-off-by: Prasanna Bhat <prasanna.yoga@gmail.com>
This commit is contained in:
parent
8fc3f4bc71
commit
8776c3213b
2 changed files with 64 additions and 4 deletions
|
@ -1,7 +1,67 @@
|
||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
This contains helper scripts (Linux) to
|
This contains helper scripts to build & run cyclonedds core & example applications in docker.
|
||||||
- Build docker image (this contains the dependencies of cyclonedds build & can be used to build cyclonedds)
|
Additionally you can also build a docker image with pre-built cyclonedds examples. This could be useful in quikly trying the examples (both IPC & network communication).
|
||||||
- Build docker image with pre-built cyclonedds (can be used for quick testing)
|
|
||||||
|
# Bulid docker image
|
||||||
|
There are two docker images you can build.
|
||||||
|
- **ubuntu:cyclonedds** : ubuntu bionic based image that contains dependencies to build cyclonedds.
|
||||||
|
- **cyclonedds:latest** : ubuntu bionic based image with pre-built cyclonedds core & applications (based on the checked out revision).
|
||||||
|
|
||||||
|
## How to build the images
|
||||||
|
|
||||||
|
### Pre-requisites
|
||||||
|
- Linux machine (native / runnin inside VM)
|
||||||
|
- Docker (I have tested with 19.03.8, however past versions also would work, as there is no specific dependency)
|
||||||
|
|
||||||
|
### Steps
|
||||||
|
|
||||||
|
You can use the helper script `./scripts/docker/build_docker_image.sh` to build the docker images.
|
||||||
|
|
||||||
|
- Navigate to root of the project.
|
||||||
|
- Run the script with -h to display usage.
|
||||||
|
```
|
||||||
|
./scripts/docker/build_docker_image.sh [images]
|
||||||
|
```
|
||||||
|
The following images are supported.
|
||||||
|
`ubuntu` : Same as **ubuntu:cyclonedds** , mentioned above.
|
||||||
|
`cyclonedds` : Same as **cyclonedds:latest**, mentioned above.
|
||||||
|
You can run the script with `-h` option to display usage information.
|
||||||
|
- Build cyclonedds core & examples (if you are using **ubuntu:cyclonedds**)
|
||||||
|
Use the helper script `./scripts/docker/build_cyclonedds.sh` to build using the currently checked out revision.
|
||||||
|
**NOTE** : You need to run this script from the root of the project.
|
||||||
|
|
||||||
|
# Run cyclonedds examples in docker
|
||||||
|
You can use either of the above docker images to run the examples.
|
||||||
|
If you use **ubuntu:cyclonedds**, you need to build cyclonedds inside container to build examples.
|
||||||
|
Once you have built the cyclonedds , you are ready to run the examples inside docker container.
|
||||||
|
|
||||||
|
Let's do that !
|
||||||
|
|
||||||
|
## Run examples inside the same container (uses IPC)
|
||||||
|
- Launch docker container, from the root of the project
|
||||||
|
`docker run --name cyclonedds -it -v $(pwd):/cyclonedds --workdir /cyclonedds cyclonedds:latest /bin/bash`
|
||||||
|
This will open terminal connected to docker @ root of the project.
|
||||||
|
It will look something like this
|
||||||
|
```
|
||||||
|
root@22ff409a33e1:/cyclonedds#
|
||||||
|
```
|
||||||
|
- Navigate to `/build/bin` to run the example applications.
|
||||||
|
- To run another terminal , connected to same docker container, use the following command.
|
||||||
|
```
|
||||||
|
docker exec -it cyclonedds /bin/bash
|
||||||
|
```
|
||||||
|
Run the partner example here. This will establish communication over IPC channel.
|
||||||
|
|
||||||
|
|
||||||
|
## Run examples in different containers (uses docker networking)
|
||||||
|
- Follow the same steps as in the previous section , instead connecting to existing docker container create a new docker container.
|
||||||
|
e.g.
|
||||||
|
`docker run --name cyclonedds1 -it -v $(pwd):/cyclonedds --workdir /cyclonedds cyclonedds:latest /bin/bash`
|
||||||
|
**NOTE** : You need to run this script from the root of the project.
|
||||||
|
At this point you can inspect the traffic using wireshark.
|
||||||
|
Open docker network interface (`docker0` on my system) in wireshark.
|
||||||
|
Good news is that wireshark has RTPS dissector.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,4 +13,4 @@ docker run -it --rm -v $WORKSPACE/:/cyclonedds --workdir /cyclonedds $IMAGE_NAME
|
||||||
# Launch the docker after build
|
# Launch the docker after build
|
||||||
docker run --name $CONTAINER_NAME -it -v $WORKSPACE/:/cyclonedds --workdir /cyclonedds $IMAGE_NAME /bin/bash
|
docker run --name $CONTAINER_NAME -it -v $WORKSPACE/:/cyclonedds --workdir /cyclonedds $IMAGE_NAME /bin/bash
|
||||||
# If you want to connect to the above docker to run cyclonedds examples (multiple apps in separate terminals) , use the below command
|
# If you want to connect to the above docker to run cyclonedds examples (multiple apps in separate terminals) , use the below command
|
||||||
docker exec -it cyclonedds /bin/bash
|
# docker exec -it cyclonedds /bin/bash
|
Loading…
Add table
Add a link
Reference in a new issue