Skip to content

v0.23.0

Latest

Choose a tag to compare

@qdm12 qdm12 released this 19 Oct 04:17
ec374a0

Features

  • Breaking changes:
    • the container now runs as an unprivileged user (user by default, uid 1000, gid 1000, home at /home/user), configurable with the USERNAME, GROUP_NAME, USER_UID, USER_GID and USER_HOME build arguments. System packages can be installed without sudo/doas, and the shell files and binaries copied into the image are --chowned so that user can run them. Based on ghcr.io/qdm12/basedevcontainer:v0.30.0-alpine/-debian, which creates and runs that account and drops the ~/.windows.sh retro-compatibility (postCreateCommand uses ~/.ssh.sh), on Alpine 3.24 to match.
    • SSH now uses the agent from the host by default, with documentation for the agent setup, for the previous ~/.ssh bind mount, and for not using SSH at all.
    • the container is configured only with devcontainer.json: docker-compose.yml is dropped by default and is now documented as an opt-in customization.
  • Support for both the Docker and Podman container engines, with documentation of the container engine section and of the engine socket plus the DOCKER_GID build argument.
  • host.docker.internal is injected into dev containers.
  • ~/AGENTS.md is bind mounted into the container (machine-specific agent context).
  • The host GH_TOKEN environment variable is injected for the gh CLI.
  • The container registry authentication file is bind mounted.
  • Go upgraded from 1.26 to 1.27.
  • gopls upgraded from v0.21.1 to v0.23.0.
  • gofumpt upgraded from v0.9.2 to v0.12.0.
  • golangci-lint upgraded from v2.11.4 to v2.14.0.
  • dlv upgraded from v1.26.1 to v1.27.2.
  • mockery upgraded from v3.7.0 to v3.8.0.
  • impl upgraded from v1.2.0 to v1.5.0.
  • kubectl upgraded from v1.35.3 to v1.37.1.
  • helm upgraded from v4.1.3 to v4.3.0.
  • stern upgraded from v1.33.1 to v1.34.0.

Fixes

  • The workspace is mounted at the same absolute path as on the host.
  • zsh: the golang, kubectl and helm plugins are loaded again, through shell/.zshrc-plugins, which the base image sources before oh-my-zsh reads the plugins variable. The list in shell/.zshrc-specific was a no-op, since that file is sourced after the plugins have been loaded, and has been dropped.

Documentation

  • .devcontainer/README.md: container engine section added.
  • README.md: ghcr.io image names instead of unprefixed Docker Hub names, docker-compose.yml documented as an opt-in, image sizes refreshed, and the mockgen/gomock source link corrected to uber-go/mock.

Maintenance

  • New CI job validating the devcontainer configuration: JSONC format check, and devcontainer up from devcontainer.json for both Podman and Docker. The checks are composite actions from qdm12/basedevcontainer, pinned to v0.30.0, called as the verify job of alpine.yml and debian.yml.
  • devcontainer.json settings re-arranged (order and comments).