#docker #docker-build #build-environment #yaml-config #interactive #run #reproducible

app floki

floki 的目标是通过帮助您从声明性 YAML 文件中交互式运行 docker 容器,提供可重复和可共享的构建工具。

18 个版本 (7 个稳定版)

2.0.1 2024 年 5 月 15 日
1.2.1 2023 年 7 月 20 日
1.0.1 2023 年 4 月 18 日
1.0.0 2022 年 9 月 12 日
0.4.1 2019 年 11 月 12 日

#39 in 命令行工具

Download history 193/week @ 2024-05-10 76/week @ 2024-05-17 9/week @ 2024-05-24

每月 1,064 次下载

MIT 许可证

310KB
1.5K SLoC

floki

Floki 最初是一个造船匠。现在,Floki 帮助您管理软件构建的交互式容器。

什么是 floki?

Docker 和 Kubernetes 是运行软件的绝佳方式,通常方便使用相同的容器以交互式方式获取可重复且完整的构建环境。但是,使用这些容器进行开发并不总是那么简单。

floki 的目标是通过改进启动和使用交互式 Docker 容器的用户体验来提高人类的界面。您不需要记住或构建复杂的 docker run 命令,也不需要编写自定义脚本来启动 Docker 容器,只需在配置文件中指定您需要从 Docker 容器中获取的内容。然后,只需运行 floki,即可获得您所需的环境。它不替代 Docker 或 Kubernetes,而是作为一种补充,旨在改进在代码库上工作的用户界面。

与通常的方法(自定义脚本或更常见的是,让用户自行解决)相比,它具有以下优点:

  • 立即获得构建环境
  • 更容易共享和引入新开发者
  • 提供一个一致和统一的接口以获取工作环境

文档

有关安装和基本用法,请参阅 入门

完整文档可在此处找到 这里

快速入门

此部分假设您已根据以下安装说明安装了 floki

假设我们想要一个基于 alpine:latest 的构建环境,其中包含 C 编译器和 clang 工具。假设我们还想从主机获得 SSH 凭据,这样我们就可以例如,使用私有 Git 服务器进行认证。

首先创建您的 Dockerfile

FROM alpine:latest

RUN apk update && apk add alpine-sdk clang openssh

然后,将名为 floki.yaml 的文件添加到您的代码库的根目录

image:
  build:
    name: hello-floki

forward_ssh_agent: true
init:
  - echo "Welcome to the hello-floki build container"

现在运行 floki。您应该看到 Docker 容器正在构建,然后您将被放入一个 shell 中。如果您在运行 floki 之前在主机上运行了 ssh-agent,则可以运行 ssh-add -l,您应该看到与主机上相同的密钥被加载。

安装

先决条件

建议您将您的用户添加到 docker

$ sudo usermod -a -G docker USERNAME

并注销并重新登录以应用更改。

或者您可以在安装后使用 floki 运行 sudo -E floki

从预构建的二进制文件安装

预编译的二进制文件可以从发行页面下载(适用于 Linux 和 OSX)。

要获取 curl 并在您的 shell 中直接提取最新的 Linux 二进制文件,请运行

$ curl -L https://github.com/Metaswitch/floki/releases/download/2.0.1/floki-2.0.1-linux.tar.gz | tar xzvf -

您应该能够从您的工作目录运行 floki

$ ./floki --version
floki 2.0.1

将其移动到您的路径中,以便从任何地方运行它。例如。

$ mv floki /usr/local/bin/

享受吧!

从 cargo 安装

floki 还可以直接从 cargo 安装。

$ cargo install floki

实用功能

  • 转发 ssh-agent(用于验证远程私有 Git 服务器以拉取私有依赖项)
  • 支持 Docker-in-Docker
  • 转发主机用户信息(允许添加和使用非 root 用户)。
  • 卷(共享或按项目)例如用于构建缓存。

贡献

贡献者需要在他们的提交上签字以承认 DCO

待办事项

查看问题。

依赖项

~14–24MB
~343K SLoC