* 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.
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Cheetah
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Cheetah
		
	
	
	
	
	
| ;; 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))))
 |