diff --git a/docker/.bash_aliases b/docker/.bash_aliases new file mode 100644 index 0000000..732bcf9 --- /dev/null +++ b/docker/.bash_aliases @@ -0,0 +1,3 @@ +# Hijack this file to set this PS1, visually indicating to the user that we are running the docker container + +PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[1;35m\]<$IMAGE_NAME>\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ " diff --git a/docker/Dockerfile b/docker/Dockerfile index f4014e3..cacbb44 100755 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,5 +1,7 @@ FROM rustlang/rust:nightly +ENV IMAGE_NAME=redox-os-docker + RUN set -ex; \ apt-get update; \ apt-get install -q -y --no-install-recommends \ @@ -30,8 +32,8 @@ RUN set -ex; \ apt-get clean -q -y; \ rm -rf /var/lib/apt/lists/* -COPY entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh +COPY entrypoint.sh /usr/local/bin/ +COPY .bash_aliases /etc/skel/ -ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] +ENTRYPOINT ["bash", "/usr/local/bin/entrypoint.sh"] CMD ["/bin/bash"] diff --git a/docker/README.md b/docker/README.md index 559974a..5e76b15 100644 --- a/docker/README.md +++ b/docker/README.md @@ -52,6 +52,17 @@ docker run --cap-add MKNOD --cap-add SYS_ADMIN --device /dev/fuse \ -v redox-"$(id -u)-$(id -g)"-rustup:/usr/local/rustup \ -v "$(pwd):$(pwd)" -w "$(pwd)" --rm redox make fetch all ``` +### Run the container interactively +```shell +docker run --cap-add MKNOD --cap-add SYS_ADMIN --device /dev/fuse \ + -e LOCAL_UID="$(id -u)" -e LOCAL_GID="$(id -g)" \ + -v redox-"$(id -u)-$(id -g)"-cargo:/usr/local/cargo \ + -v redox-"$(id -u)-$(id -g)"-rustup:/usr/local/rustup \ + -v "$(pwd):$(pwd)" -w "$(pwd)" --rm -it redox +``` + +#### Demo +![Image of Usage](interactive_demo.gif) ### Clear the named volume containing the cargo cache ```shell diff --git a/docker/interactive_demo.gif b/docker/interactive_demo.gif new file mode 100644 index 0000000..3d31594 Binary files /dev/null and b/docker/interactive_demo.gif differ