Devcontainer: enable bash-completion and set UTF-8 locale

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
finnandClaude Opus 5.5 committed 2026-10-21 08:39:28 +00:00
1 parent e0b5e05cce
commit 86fcdfde27
2 files changed
+9 -4

No files matched your search

+7 -3
View File
@@ -7,17 +7,21 @@ ARG USER_GID=$USER_UID
# git + openssh-client: git over the host's forwarded SSH agent # git + openssh-client: git over the host's forwarded SSH agent
# gcc, libc-dev, libpq-dev: build psycopg2 from requirements.txt # gcc, libc-dev, libpq-dev: build psycopg2 from requirements.txt
# postgresql-client, wait-for-it: scripts/db-setup.sh, scripts/psql.sh # postgresql-client, wait-for-it: database scripts
# curl, ca-certificates: Claude Code installer # curl, ca-certificates: Claude Code installer
# vim: personal preferences # vim, bash-completion: personal preferences
RUN apt-get -y update && \ RUN apt-get -y update && \
apt-get install --no-install-recommends -y \ apt-get install --no-install-recommends -y \
git openssh-client make curl ca-certificates sudo \ git openssh-client make curl ca-certificates sudo \
gcc libc-dev libpq-dev \ gcc libc-dev libpq-dev \
postgresql-client wait-for-it \ postgresql-client wait-for-it \
vim && \ vim bash-completion && \
apt-get clean && rm -rf /var/lib/apt/lists/* apt-get clean && rm -rf /var/lib/apt/lists/*
# Load bash-completion in every interactive shell (e.g. `make <TAB>`). Not in
# ~/.bashrc, since the home dir is a volume (see devcontainer.json).
RUN echo '. /usr/share/bash-completion/bash_completion' >> /etc/bash.bashrc
RUN groupadd --gid $USER_GID $USERNAME && \ RUN groupadd --gid $USER_GID $USERNAME && \
useradd --uid $USER_UID --gid $USER_GID -m -s /bin/bash $USERNAME && \ useradd --uid $USER_UID --gid $USER_GID -m -s /bin/bash $USERNAME && \
echo "$USERNAME ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME && \ echo "$USERNAME ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME && \
+2 -1
View File
@@ -13,7 +13,8 @@
// Bind mounts are resolved by the host's daemon, so they need host paths: // Bind mounts are resolved by the host's daemon, so they need host paths:
// use ${LOCAL_WORKSPACE_FOLDER} instead of paths inside this container. // use ${LOCAL_WORKSPACE_FOLDER} instead of paths inside this container.
"remoteEnv": { "remoteEnv": {
"LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}" "LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}",
"LANG": "C.UTF-8"
}, },
"postCreateCommand": "pip install -U pip && pip install -U -r requirements.txt -r requirements-dev.txt", "postCreateCommand": "pip install -U pip && pip install -U -r requirements.txt -r requirements-dev.txt",
"forwardPorts": [ "forwardPorts": [