aboutsummaryrefslogtreecommitdiff
path: root/gnu/system/examples
diff options
context:
space:
mode:
authorChris Marusich <cmmarusich@gmail.com>2018-02-19 05:45:03 +0100
committerChris Marusich <cmmarusich@gmail.com>2018-03-24 03:04:11 +0100
commita335f6fcc9aac1afb49a562968107abf7c87e631 (patch)
tree5ce5e35f946f8b6107d36f6a89ebf749a274fc42 /gnu/system/examples
parent1c2ac6b482ea20419e57fd54b0cd1d4d3972776b (diff)
downloadguix-a335f6fcc9aac1afb49a562968107abf7c87e631.tar
guix-a335f6fcc9aac1afb49a562968107abf7c87e631.tar.gz
system: Add "guix system docker-image" command.
* gnu/system/vm.scm (system-docker-image): New procedure. * guix/scripts/system.scm (system-derivation-for-action): Add a case for docker-image, and in that case, call system-docker-image. (show-help): Document docker-image. (guix-system): Parse arguments for docker-image. * doc/guix.texi (Invoking guix system): Document "guix system docker-image". * gnu/system/examples/docker-image.tmpl: New file.
Diffstat (limited to 'gnu/system/examples')
-rw-r--r--gnu/system/examples/docker-image.tmpl47
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/system/examples/docker-image.tmpl b/gnu/system/examples/docker-image.tmpl
new file mode 100644
index 0000000000..d73187398f
--- /dev/null
+++ b/gnu/system/examples/docker-image.tmpl
@@ -0,0 +1,47 @@
+;; This is an operating system configuration template for a "Docker image"
+;; setup, so it has barely any services at all.
+
+(use-modules (gnu))
+
+(operating-system
+ (host-name "komputilo")
+ (timezone "Europe/Berlin")
+ (locale "en_US.utf8")
+
+ ;; This is where user accounts are specified. The "root" account is
+ ;; implicit, and is initially created with the empty password.
+ (users (cons (user-account
+ (name "alice")
+ (comment "Bob's sister")
+ (group "users")
+ (supplementary-groups '("wheel"
+ "audio" "video"))
+ (home-directory "/home/alice"))
+ %base-user-accounts))
+
+ ;; Globally-installed packages.
+ (packages %base-packages)
+
+ ;; Because the system will run in a Docker container, we may omit many
+ ;; things that would normally be required in an operating system
+ ;; configuration file. These things include:
+ ;;
+ ;; * bootloader
+ ;; * file-systems
+ ;; * services such as mingetty, udevd, slim, networking, dhcp
+ ;;
+ ;; Either these things are simply not required, or Docker provides
+ ;; similar services for us.
+
+ ;; This will be ignored.
+ (bootloader (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target "does-not-matter")))
+ ;; This will be ignored, too.
+ (file-systems (list (file-system
+ (device "does-not-matter")
+ (mount-point "/")
+ (type "does-not-matter"))))
+
+ ;; Guix is all you need!
+ (services (list (guix-service))))