
compose2nix 快速入门10分钟将 Docker Compose 项目迁移到 NixOS【免费下载链接】compose2nixGenerate a NixOS config from a Docker Compose project.项目地址: https://gitcode.com/gh_mirrors/co/compose2nixcompose2nix 是一款强大的工具能够自动将 Docker Compose 项目转换为 NixOS 配置让你轻松在 NixOS 系统上运行容器化应用。本文将为你提供一个简单快速的入门指南只需10分钟就能完成 Docker Compose 项目到 NixOS 的迁移。为什么选择 compose2nix在 NixOS 上运行 Docker Compose 项目并非最佳选择传统方式存在诸多不便。而 compose2nix 带来了全新的解决方案它将每个 YAML 服务定义转换为oci-container配置并设置 systemd 服务来创建网络和卷让 NixOS 能够原生管理容器服务。compose2nix 的核心优势双引擎支持同时兼容 Docker 和 Podman满足不同用户的需求。精细控制单个服务的变更不会影响其他容器实现更精准的管理。原生集成生成的 systemd 服务可直接从 NixOS 配置扩展与系统深度融合。扩展能力通过 Docker Compose 标签设置额外的 systemd 服务和单元选项。快速安装 compose2nix安装 compose2nix 有多种方式推荐使用nix run命令简单快捷# 最新版本 nix run github:aksiksi/compose2nix -- -h # 特定版本 nix run github:aksiksi/compose2nix/v0.3.0 -- -h也可以通过 NixOS 配置安装environment.systemPackages [ pkgs.compose2nix ];或者将其添加到你的flake.nix中compose2nix.url github:aksiksi/compose2nix; compose2nix.inputs.nixpkgs.follows nixpkgs;10分钟迁移实战第一步准备工作确保你的项目中有docker-compose.yml文件或者通过-inputs参数指定 Compose 文件路径。第二步生成 NixOS 配置在项目目录下运行以下命令compose2nix -projectmyproject默认情况下工具会在当前目录查找docker-compose.yml并将 NixOS 配置输出到docker-compose.nix。你可以通过-output参数指定输出路径。第三步自定义生成选项compose2nix 提供了丰富的选项来满足不同需求选择容器运行时-runtimedocker或-runtimepodman设置环境文件--env_files/path/to/env.file启用自动构建-buildtrue控制服务自动启动-auto_startfalse例如生成 Docker 配置并包含环境文件compose2nix -projectmyproject -runtimedocker --env_files.env --include_env_filestrue第四步集成到 NixOS 配置将生成的docker-compose.nix导入到你的 NixOS 配置中imports [ ./docker-compose.nix ];然后执行sudo nixos-rebuild switch应用配置。管理和维护常用系统命令列出所有服务sudo systemctl list-units podman-*重启服务sudo systemctl restart podman-myproject-myservice.service启动所有服务sudo systemctl start podman-compose-myservice-root.target停止所有服务sudo systemctl stop podman-compose-myservice-root.target更新容器镜像拉取最新镜像sudo podman pull $(sudo podman inspect myproject-myservice | jq -r .[0].ImageName)重启服务sudo systemctl restart podman-myproject-myservice.service自动更新容器Podman在 Compose 服务中添加标签services: myservice: image: docker.io/repo/image labels: - io.containers.autoupdateregistry启用自动更新定时器systemd.timers.podman-auto-update.wantedBy [ timers.target ];高级功能处理 secretscompose2nix 支持与sops-nix集成管理 secrets在 Compose 服务中添加标签services: webapp: image: nginx:latest labels: - compose2nix.settings.sops.secretsexample.env,some-folder/example-2.env运行 compose2nix 时指定 secrets 文件compose2nix --inputs docker-compose.yml --sops_file ./secrets/secrets.yamlGPU 支持要在 NixOS 上启用 GPU 支持需在配置中添加{ hardware.nvidia-container-toolkit.enable true; }然后在 Compose 文件中指定 CDI 设备services: myservice: devices: - nvidia.com/gpuall security_opt: - labeldisable总结compose2nix 为 Docker Compose 项目迁移到 NixOS 提供了简单高效的解决方案。通过本文介绍的步骤你可以在短短10分钟内完成迁移享受 NixOS 带来的可靠和可复现的容器管理体验。无论是新手还是有经验的 NixOS 用户都能轻松上手 compose2nix让容器管理变得更加简单直观。如果你想深入了解更多功能可以查看项目的测试样例如 testdata/TestBasic.docker.nix 和 testdata/TestBasic.podman.nix了解不同场景下的配置方式。开始使用 compose2nix体验 NixOS 上容器管理的新方式吧【免费下载链接】compose2nixGenerate a NixOS config from a Docker Compose project.项目地址: https://gitcode.com/gh_mirrors/co/compose2nix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考