blob: f560fee3892120fb39574c0ee5c974d122d1b4e9 [file] [log] [blame] [view]
# Docker Container
Docker container based on Ubuntu 18.04 LTS containing various hardware and
software development tools for OpenTitan, as listed in the
[OpenTitan documentation](../../doc/guides/getting_started/src/README.md).
## Local Build Instructions
For now, no pre-built containers are available; you'll need to build the Docker container locally.
First, you'll need to install Docker either through your package manager or their [download page](https://www.docker.com/get-started/).
You'll also need to clone the [OpenTitan repository](https://github.com/lowRISC/opentitan) if you haven't done that yet.
Then, from `$REPO_TOP` (the top-level directory in the repository, called `opentitan` by default), you can build the container with:
```shell
$ sudo docker build -t opentitan -f util/container/Dockerfile .
```
## Using the Container
Run the container with `docker run`, mapping the current working directory to
`/home/dev/src`. The user `dev` will have the same user ID as the current user
on the host (you!), causing all files created by the `dev` user in the container
to be owned by the current user on the host.
If you'd like to initialize your shell environment in a specific way, you can
pass an environment variable `USER_CONFIG=/path/to/a/script.sh`. Otherwise,
remove the `--env USER_CONFIG` argument from the invocation shown below.
The script passed through this mechanism will be sourced. The path of the script
must be within the container, e.g. in the OpenTitan repository directory.
```
docker run -t -i \
-v $(pwd):/home/dev/src \
--env DEV_UID=$(id -u) --env DEV_GID=$(id -g) \
--env USER_CONFIG=/home/dev/src/docker-user-config.sh \
opentitan:latest \
bash
```
You can use `sudo` within the container to gain root permissions.