User Configuration

User configuration is in the ~/.config/dockerdo/dockerdo.yaml file.

Example config:

always_interactive: false
always_record_inotify: false
default_distro: ubuntu
default_docker_registry: null
default_docker_run_args: ''
default_image: ubuntu:latest
default_image_name_template: dockerdo-{base_image}:{base_image_tag}-{session_name}
default_remote_delay: 0.3
default_remote_host: null
ssh_key_path: /home/user/.ssh/id_rsa.pub

always_interactive

Boolean. If True, then commands are always run in interactive mode, without needing to specify -i|--interactive. This comes at a performance penalty.

always_record_inotify

Boolean. If True, then filesystem events are recorded even if you don’t specify --record to dockerdo run.

default_distro

The default distro of your dockerfiles, unless overridden with --distro in dockerdo init. The distro affects how sshd is installed.

default_docker_registry

The default docker registry to use, unless overridden with --registry in dockerdo init.

default_docker_run_args

The default arguments to pass to docker run, unless turned off with --no-default-args in dockerdo run.

default_image

The default base image, unless overridden with --image in dockerdo init.

default_image_name_template

The template to use for the overlay image tag. You can use the following variables:

  • base_image: the base image name, without the tag

  • base_image_tag: the base image tag

  • session_name: the session name

default_remote_delay

The default delay to add to all remote commands, unless overridden with --remote-delay in dockerdo init.

default_remote_host

Use this remote host, unless overridden with --remote in dockerdo init.

ssh_key_path

Path to the ssh public key to install in the container.

Session Configuration

Session configuration is stored in the ~/.local/share/dockerdo/${session_name}/session.yaml file for persistent sessions, and in a temporary directory for ephemeral sessions.

You can inspect the session configuration with dockerdo status, or by editing the file directly. You can modify some of the configuration variables after the session has been created, but not all of them.

base_image

The base image that the overlay image is based on. If you modify this, you must rerun dockerdo overlay and dockerdo build.

container_name

The name of the container. You can change this until you run the container, after which it is fixed.

container_state

The expected state of the container. Modifying this will not change the state of the container.

container_username

The username to use in the container. If you modify this, you must rerun dockerdo overlay and dockerdo build.

distro

The distro of the base image. If you modify this, you must rerun dockerdo overlay and dockerdo build.

docker_registry

The docker registry to use.

docker_run_args

The arguments to pass to docker run.

env

The environment variables to export to the container.

image_tag

The tag of the overlay image. Don’t modify this value directly, instead rerun dockerdo build.

local_work_dir

The working directory on the local host.

name

The name of the session.

record_inotify

Whether to record filesystem events. You can change this until you run the container, after which it is fixed.

remote_delay

The delay to add to all remote commands, to allow slow sshfs to catch up. You can change this at any time, and the new value will affect future commands.

remote_host

The remote host to use. This value should not be modified.

remote_host_build_dir

The build directory on the remote host. This value should not be modified.

session_dir

The session directory. This value should not be modified.

ssh_port_on_remote_host

The port on the remote host that the container ssh service will be published as. The docker run command will receive a flag like -p ${ssh_port_on_remote_host}:22. The port doesn’t need to be exposed through the firewall of the remote host, as we will jump through the sshd on the remote host. You can change this until you run the container, after which it is fixed.