mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-07 15:36:20 -05:00
guix system: 'docker-image' honors '--network'.
* gnu/system/vm.scm (system-docker-image): Add #:shared-network? and pass it to 'containerized-operating-system'. (qemu-image): * guix/scripts/system.scm (system-derivation-for-action): Pass #:shared-network? to 'system-docker-image'. * doc/guix.texi (Invoking guix system): Document it.
This commit is contained in:
parent
8d65a71e5f
commit
d6c43d7bc1
3 changed files with 18 additions and 8 deletions
|
@ -27066,6 +27066,10 @@ example, if you intend to build software using Guix inside of the Docker
|
||||||
container, you may need to pass the @option{--privileged} option to
|
container, you may need to pass the @option{--privileged} option to
|
||||||
@code{docker create}.
|
@code{docker create}.
|
||||||
|
|
||||||
|
Last, the @code{--network} option applies to @command{guix system
|
||||||
|
docker-image}: it produces an image where network is supposedly shared
|
||||||
|
with the host, and thus without services like nscd or NetworkManager.
|
||||||
|
|
||||||
@item container
|
@item container
|
||||||
Return a script to run the operating system declared in @var{file}
|
Return a script to run the operating system declared in @var{file}
|
||||||
within a container. Containers are a set of lightweight isolation
|
within a container. Containers are a set of lightweight isolation
|
||||||
|
|
|
@ -419,13 +419,17 @@ (define schema
|
||||||
(define* (system-docker-image os
|
(define* (system-docker-image os
|
||||||
#:key
|
#:key
|
||||||
(name "guix-docker-image")
|
(name "guix-docker-image")
|
||||||
(register-closures? (has-guix-service-type? os)))
|
(register-closures? (has-guix-service-type? os))
|
||||||
|
shared-network?)
|
||||||
"Build a docker image. OS is the desired <operating-system>. NAME is the
|
"Build a docker image. OS is the desired <operating-system>. NAME is the
|
||||||
base name to use for the output file. When REGISTER-CLOSURES? is true,
|
base name to use for the output file. When SHARED-NETWORK? is true, assume
|
||||||
register the closure of OS with Guix in the resulting Docker image. By
|
that the container will share network with the host and thus doesn't need a
|
||||||
default, REGISTER-CLOSURES? is set to true only if a service of type
|
DHCP client, nscd, and so on.
|
||||||
GUIX-SERVICE-TYPE is present in the services definition of the operating
|
|
||||||
system."
|
When REGISTER-CLOSURES? is true, register the closure of OS with Guix in the
|
||||||
|
resulting Docker image. By default, REGISTER-CLOSURES? is set to true only if
|
||||||
|
a service of type GUIX-SERVICE-TYPE is present in the services definition of
|
||||||
|
the operating system."
|
||||||
(define schema
|
(define schema
|
||||||
(and register-closures?
|
(and register-closures?
|
||||||
(local-file (search-path %load-path
|
(local-file (search-path %load-path
|
||||||
|
@ -442,7 +446,9 @@ (define boot-program
|
||||||
|
|
||||||
|
|
||||||
(let ((os (operating-system-with-gc-roots
|
(let ((os (operating-system-with-gc-roots
|
||||||
(containerized-operating-system os '())
|
(containerized-operating-system os '()
|
||||||
|
#:shared-network?
|
||||||
|
shared-network?)
|
||||||
(list boot-program)))
|
(list boot-program)))
|
||||||
(name (string-append name ".tar.gz"))
|
(name (string-append name ".tar.gz"))
|
||||||
(graph "system-graph"))
|
(graph "system-graph"))
|
||||||
|
|
|
@ -700,7 +700,7 @@ (define* (system-derivation-for-action os action
|
||||||
(size image-size)
|
(size image-size)
|
||||||
(operating-system os))))
|
(operating-system os))))
|
||||||
((docker-image)
|
((docker-image)
|
||||||
(system-docker-image os))))
|
(system-docker-image os #:shared-network? container-shared-network?))))
|
||||||
|
|
||||||
(define (maybe-suggest-running-guix-pull)
|
(define (maybe-suggest-running-guix-pull)
|
||||||
"Suggest running 'guix pull' if this has never been done before."
|
"Suggest running 'guix pull' if this has never been done before."
|
||||||
|
|
Loading…
Reference in a new issue