- Development environment using Docker for some Linux distributions
- You can use GUI applications without setting up xhost.
- Linux Only
- You use macOS, you need to set up xhost.
- dotfiles is included in the image
- tmux prefix set to
C-q
- tmux prefix set to
- Linux
- macOS (Not support GPU)
- Prerequisite: XQuartz
- x86_64
- arm64
- VSCode
- Neovim (Not support completion: ROS2)
- CentOS Stream: Not support Neovim. Please use Vim.
- make
- docker
- nvidia-container-runtime
- If you can't install this package, install nvidia-container-toolkit before installing this package.
- If you can't use GPU, execute the following command:
sudo systemctl restart docker
- Please disable GPU by custom setup
git clone https://github.com/ToshikiNakamura0412/dockerfiles.git
create directories (e.g. workspace)
cd dockerfiles
make setup # create directories
cd dockerfiles
make [target] [arg=<arg>]
...
make setup # create directories
- show help of make:
make help
- show help of target:
make [target] arg=-h
- target:
change_root_dir
,disable_gpu
,select_shell
,setup
,sync_git_user
- target:
If you already start the container, you need to execute the following command to reflect the changes.
docker compose up [option -d]
- remove directories (e.g. workspace) and revert to the default state
- If the directories are not empty, they will not be deleted
cd dockerfiles
make clean
Distro | Default Shell | Base Image | Contents | README | |
---|---|---|---|---|---|
alpine3.17 | Alpine3.17 | zsh | alpine (Official) | ||
archlinux | ArchLinux | zsh | archlinux (Official) | ||
centos-stream9 | CentOS Stream9 | zsh | centos (Official) | ||
debian12 | Debian12 | zsh | debian (Official) | ||
fedora40 | Fedora40 | zsh | fedora (Official) | ||
humbe | Ubuntu22.04 | zsh | ros (Official) | ROS2 Humble | |
noetic | Ubuntu20.04 | zsh | ros (Official) | ROS1 Noetic | |
noetic-cuda | Ubuntu20.04 | zsh | cuda (Official) | ROS1 Noetic + CUDA-11.6.1-devel | |
noetic-cuda-opencv | Ubuntu20.04 | zsh | noetic-cuda (Custom) | ROS1 Noetic + CUDA-11.6.1-devel + OpenCV-5.x | README |
noetic-cudnn | Ubuntu20.04 | zsh | cuda (Official) | ROS1 Noetic + CUDA-11.6.1-cuDNN8-devel | |
noetic-cudnn-opencv | Ubuntu20.04 | zsh | noetic-cudnn (Custom) | ROS1 Noetic + CUDA-11.6.1-cuDNN8-devel + OpenCV-5.x | README |
noetic-pcl10 | Ubuntu20.04 | zsh | noetic (Custom) | ROS1 Noetic + PCL10 | README |
noetic-pcl14 | Ubuntu20.04 | zsh | noetic (Custom) | ROS1 Noetic + PCL14 | README |
opensuse-leap15.6 | OpenSUSE Leap15.6 | zsh | opensuse/leap (Official) | ||
ubuntu20.04 | Ubuntu20.04 | zsh | ubuntu (Official) | ||
ubuntu22.04 | Ubuntu22.04 | zsh | ubuntu (Official) |
- Alpine does not yet support nvidia-container-runtime
- macOS does not support ROS, so please use virtual machines like UTM
- host:
- default:
~/ws
- ROS1:
~/ros1_ws
- ROS2:
~/ros2_ws
- default:
- container:
- all:
~/ws
- all:
cd <target image dir>
docker compose up [option -d] # create and start (-d: detached)
docker compose start # start
docker compose stop # stop
docker compose down # stop and remove
If you want to create different containers of the same environment, execute the following:
docker compose -p <project name> up [option -d]
cd <target image dir>
docker compose exec ws <command> # e.g. zsh, bash, tmux
- bash: All Distro Support
- zsh: Only Ubuntu Support
prerequisite: extension ms-vscode-remote.remote-containers
cd <target image dir>
code .
- Click on
Reopen in container
to run container - If you don't click on
Reopen in container
, execute~/install_vscode_extensions.sh
in the container to install the extension
- If you are creating a new IMAGE, it is recommended that you build the provided image and create an image based on it.
- Use
docker compose up
to check if the build is done correctly.