New project
Contents
New project#
What you will need
Basic knowledge of Python
What you will get
Learn how to use DTProjects, the most important building block in Duckietown
Learn how to create a new DTProject from a template
Duckietown-compliant Docker images are built from Duckietown Projects, abbreviated as DTProjects
. Read the introduction to DTprojects if not already done.
A boilerplate for the simplest DTProject is provided by the duckietown/template-basic repository.
Create a DTproject from a template#
Visit the template repository page:
duckietown/template-basic.
Select the button labeled Use this template, then choose Create a new repository from the dropdown menu.

Fig. 3 Use template repository on GitHub.#
This will redirect to a new page:

Fig. 4 Creating a repository from template.#
Choose a name for the repository, for instance my-project
, and press the Create repository from template button.
It is possible to replace my-project
with any preferred name. If so, make sure to update all following references accordingly.
This creates a new repository containing a copy of all content from template-basic
. Next, clone it locally using a terminal:
git clone https://github.com/YOUR_NAME/my-project
cd my-project
Note
Replace YOUR_NAME
with your actual GitHub username.
Edit placeholders#
Before continuing, update placeholder metadata inside the Dockerfile
. Open the file and replace the following lines:
ARG REPO_NAME="<REPO_NAME_HERE>"
ARG DESCRIPTION="<DESCRIPTION_HERE>"
ARG MAINTAINER="<YOUR_FULL_NAME> (<YOUR_EMAIL_ADDRESS>)"
For example:
ARG REPO_NAME="my-project"
ARG DESCRIPTION="My first Duckietown project"
ARG MAINTAINER="HappyDuckie ([email protected])"
Save and close the file. It is now possible to build the image, although the contents will still be minimal.
Build the project#
In a terminal, navigate to the root directory of the cloned repository and execute:
dts devel build -f
The -f
flag (--force
) allows the build to proceed even if the repository is not “clean”, i.e., as after making local edits.
Upon a successful build, a Docker image will be created. Look for a message similar to the following in the terminal output:
Final image name: docker.io/duckietown/my-project:v2-amd64

Fig. 5 Building a container through the Duckietown development command.#
Run the DTproject
#
To launch the container:
dts devel run
This will display:
...
==> Launching app...
This is an empty launch script. Update it to launch your application.
<== App terminated!
Congratulations 🎉
You have just built and run your first Duckietown-compliant Docker image.