49 lines
1.1 KiB
Nix
49 lines
1.1 KiB
Nix
|
{ pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
webRoot = "/www";
|
||
|
|
||
|
webserverImage = pkgs.dockerTools.buildLayeredImage {
|
||
|
name = "a-webserver";
|
||
|
|
||
|
config = {
|
||
|
Entrypoint = [
|
||
|
"${pkgs.darkhttpd}/bin/darkhttpd"
|
||
|
webRoot
|
||
|
];
|
||
|
|
||
|
Volumes = {
|
||
|
"${webRoot}" = { };
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
project.name = "custom-image";
|
||
|
services = {
|
||
|
|
||
|
webserver = {
|
||
|
image.tarball = webserverImage;
|
||
|
|
||
|
# The following is essentially equivalent to
|
||
|
#
|
||
|
# { image.tarball = webserverImage; }
|
||
|
#
|
||
|
# It is included here as a demonstration of how to configure Arion to
|
||
|
# load a Docker image from *any* valid image tarball, not just one
|
||
|
# produced with a `pkgs.dockerTools` builder function.
|
||
|
#image.tarball = webserverImage.outPath;
|
||
|
#image.name = webserverImage.imageName;
|
||
|
#image.tag = webserverImage.imageTag;
|
||
|
|
||
|
service.command = [ "--port" "8000" ];
|
||
|
service.ports = [
|
||
|
"8000:8000" # host:container
|
||
|
];
|
||
|
service.volumes = [
|
||
|
"${pkgs.nix.doc}/share/doc/nix/manual:${webRoot}"
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
}
|