Add your code
Add your code#
Now that we know how to build Docker images for Duckietown, let’s build one with a simple Python program inside.
Open a terminal and go to the directory
my-project created in the previous page.
In Duckietown, Python code must belong to a Python package.
Python packages are placed inside the directory
packages/ you can find at the root of
Let us go ahead and create a directory called
mkdir -p ./packages/my_package
A Python package is simply a directory containing a special file called
So, let us turn that
my_package into a Python package.
Now that we have a Python package, we can create a Python script in it.
Use your favorite text editor or IDE to create the file
place the following code inside it.
message = "\nHello World!\n"
We now need to tell Docker we want this script to be the one executed when we run the command
dts devel run. In order to do so, open the file
./launchers/default.sh and replace the line
echo "This is an empty launch script. Update it to launch your application."
with the line
dt-exec python3 -m "my_package.my_script"
dt-exec to the main command in
dt-exec helps us deal with an interesting problem called “The zombie reaping problem”
(more about this in this article).
You can also create more launcher scripts. To know more about that, check out the page Launchers.
Let us now re-build the image:
dts devel build -f
and run it:
dts devel run
This will show the following message:
==> Launching app...
<== App terminated!
You just built and run your own Duckietown-compliant Docker image.