Sign inSign up

starxen/dmd

By starxen

•Updated 20 days ago

Containerized D language compiler

Image
Languages & frameworks
Developer tools
0

10K+

starxen/dmd repository overview

Logo

⁠DMD (Digital Mars D Compiler)

Docker image for the DMD Compiler, the reference compiler for the D Programming Language.

⁠Quick reference

Maintained by:

Where to get help:
the Docker Community Slack⁠, Server Fault⁠, Unix & Linux⁠, or Stack Overflow⁠

Where to file issues:
https://gitlab.com/starxen/dmd-docker-image/-/issues⁠

Supported architectures: (more info⁠)
amd64 windows-amd64

Build Process Source Codes:
You can find the source code for the build process at:
GitLab Repository⁠

Published Image Artifact Details:

⁠What is D?

D is a systems programming language that combines the power and high-performance of languages like C and C++ with the productivity and ease of use of modern languages like Python or JavaScript. DMD is the official compiler that implements the D language.

⁠Debian-based tags:
⁠Ubuntu-based tags:
⁠Fedora-based tags:
⁠OpenSUSE-based tags:
⁠Windows-based tags:

⁠Iteration tag policy

Docker image tags follow the format 2.x.x-x. The DMD version refers to the application version and remains unchanged, while the iteration indicates updates or fixes in the Docker build process. When a new image is released, the tag with the DMD version (2.x.x) will be updated to point to the latest build, while all iterated tags (2.x.x-x) will remain available for reference.

⁠How to use this image

⁠Check DMD version
docker run --rm starxen/dmd dmd --version

This command will pull the DMD image and print the installed version.

⁠Running a simple D program

Create a hello.d file with the following content:

import std.stdio;

void main() {
    writeln("Hello, World!");
}

Compile your program inside the container:

docker run --rm -v ./:/src starxen/dmd dmd hello.d

After compilation, a file named hello will be created. It can be executed:

./hello

Or use the built-in command to compile and run your program:

docker run --rm -v ./:/src starxen/dmd rdmd hello.d
⁠Persistent compilation environment

To keep a persistent environment with your project files:

docker run --rm -it -v ./:/src starxen/dmd bash

You can now run dmd commands interactively within the container.

⁠Using a Windows image

If you want to use a Windows-based image, below are the Windows equivalents of the above commands.

⁠Compile
docker run --rm -v .\:C:\src starxen/dmd:windows dmd test.d
⁠Run
.\test.exe
⁠Built-in command to compile and run
docker run --rm -v .\:C:\src starxen/dmd:windows rdmd test.d
⁠Persistent compilation environment
docker run --rm -it -v .\:C:\src starxen/dmd:windows powershell
⁠Environment Variables

The image provides the following environment variables:

  • DMD_VERSION: Installed version of DMD.
  • DMD_ITERATION: DMD image iteration.
  • IMAGE_ARCH: Image architecture, such as AMD64.
  • IMAGE_BASE_DISTRO: Specifies the base operating system distribution for the Docker image, such as DEBIAN, UBUNTU, FEDORA, OPENSUSE or WINDOWS.
  • IMAGE_BASE_VERSION: Specifies the base operating system version for the Docker image, such as 13, 26.04, 44, 15 or LTSC2025.
  • IMAGE_BASE_VERSION_NAME: Specifies the base operating system version name for the Docker image, such as TRIXIE, RESOLUTE, 44, LEAP or SERVERCORE.
⁠License

DMD is licensed under the Boost Software License 1.0. For more details, see the DMD License⁠.

⁠More Information

⁠Backers

  • laserovsky.net⁠ for hosting GitLab Runners used for building and publishing Docker images.

Tag summary

Content type

Image

Digest

sha256:19ca9bc0f…

Size

193.7 MB

Last updated

20 days ago

docker pull starxen/dmd