Ubuntu Dev Environment

Multi-arch (amd64/arm64) Ubuntu Docker images with pre-installed networking, development, and debugging tools. Built for use as a general-purpose dev environment.

Available Images

Version Gitea GitHub
24.04 (latest) gitea.ahkhan.me/docker/ubuntu-24.04 ghcr.io/ahkhan03/ubuntu-24.04
22.04 gitea.ahkhan.me/docker/ubuntu-22.04 ghcr.io/ahkhan03/ubuntu-22.04
20.04 gitea.ahkhan.me/docker/ubuntu-20.04 ghcr.io/ahkhan03/ubuntu-20.04

The ubuntu:latest tag points to Ubuntu 24.04.

Environment Variables

SSH

Variable Default Description
ENABLE_SSH true Start the SSH server on port 22. Set to false to disable.

Startup / Shutdown Commands

Variable Default Description
COMMAND_INIT Command to run on container startup. The last init command runs in the background to allow signal handling.
COMMAND_INIT01..COMMAND_INIT99 Additional numbered init commands, executed in order after COMMAND_INIT.
COMMAND_EXIT Command to run on container shutdown (before processes are terminated).
COMMAND_EXIT01..COMMAND_EXIT99 Additional numbered exit commands, executed in order after COMMAND_EXIT.

Logging

Variable Default Description
LOG_FILE /dev/null Path to a log file to tail. When set, the container's stdout will stream this file.

Mirrors (China)

Variable Default Description
USE_CHINA_MIRRORS false Switch apt, pip, and npm to Aliyun mirrors on startup.

Package Updates

Variable Default Description
UPDATE_APT false Run apt update on startup (with network check).

Usage Examples

Basic:

docker run -d ghcr.io/ahkhan03/ubuntu-24.04

With a startup command and SSH:

docker run -d -p 2222:22 \
  -e COMMAND_INIT="echo 'hello from init'" \
  ghcr.io/ahkhan03/ubuntu-24.04

Multiple init/exit commands:

docker run -d \
  -e COMMAND_INIT01="echo 'first'" \
  -e COMMAND_INIT02="python3 -m http.server 8080" \
  -e COMMAND_EXIT01="echo 'shutting down'" \
  ghcr.io/ahkhan03/ubuntu-24.04

Without SSH, with China mirrors:

docker run -d \
  -e ENABLE_SSH=false \
  -e USE_CHINA_MIRRORS=true \
  ghcr.io/ahkhan03/ubuntu-24.04

Building

./build.sh

See ./build.sh --help for configuration options.

Description
No description provided
Readme 85 KiB
Languages
Shell 87.4%
Dockerfile 12.6%