ThreeFold Flist CLI in V to turn Dockerfile+Docker Images into Flist on the TF Flist Hub
Go to file
2024-10-09 12:36:22 -07:00
.gitignore started working on windows native version 2024-10-09 12:36:22 -07:00
flist.v fixed full tag 2024-10-08 11:40:02 -04:00
LICENSE init flist_cli_v app, todo: set push function 2024-10-02 01:19:16 -04:00
Makefile started working on windows native version 2024-10-09 12:36:22 -07:00
README.md started working on windows native version 2024-10-09 12:36:22 -07:00

Flist CLI in Vlang

Table of Contents


Introduction

Flist CLI is a tool that turns Dockerfiles and Docker images directly into Flist on the TF Flist Hub, passing through Docker Hub.

Installation

Prerequisites

  • V programming language (latest version) installed on your system
  • Docker installed and running
  • Docker Hub account
  • TF Hub account and token

Building and Installing

Clone this repository, build the project, and install the CLI:

git clone https://git.ourworld.tf/tfgrid/flist_cli_v
cd flist_cli_v
make build

This will build the flist executable and install it to the appropriate system location.

Rebuild and Uninstall

You can use the following Makefile commands:

  • To rebuild and reinstall:

    make rebuild
    
  • To uninstall and remove the binary:

    make delete
    

Usage

After installation, you can use the flist command followed by various subcommands:

flist <command> [arguments]

Commands

  • install: Install the Flist CLI
  • uninstall: Uninstall the Flist CLI
  • login: Log in to Docker Hub and save the Flist Hub token
  • logout: Log out of Docker Hub and remove the Flist Hub token
  • push <image>:<tag>: Build and push a Docker image, then convert and push it as an flist
  • delete <flist_name>: Delete an flist from Flist Hub
  • rename <flist_name> <new_flist_name>: Rename an flist in Flist Hub
  • ls: List all flists of the current user
  • ls url: List all flists of the current user with full URLs
  • help: Display help information

OS-Specific Instructions

Linux

  1. Ensure Docker is installed and the Docker daemon is running.
  2. The flist executable will be installed to:
    /usr/local/bin/flist
    

macOS

  1. Ensure Docker Desktop is installed and running.
  2. The flist executable will be installed to:
    /usr/local/bin/flist
    

Windows

WSL

You can use WSL with Ubuntu to deploy the Flist CLI on Windows.

Native Windows

When using the make commands, add -win to the commands: make build-win, make rebuild-win, make delete-win.

  • Run make for Windows on Powershell Admin:
git clone https://git.ourworld.tf/tfgrid/flist_cli_v
cd flist_cli_v
make build-win
  • Run in Powershell Admin the following lines then restart the shell
$newPath = 'C:\Program Files\flist'
setx PATH "$($env:PATH);$newPath"

Troubleshooting

  • If you encounter permission issues, ensure you're running the command with appropriate privileges (e.g., as administrator on Windows or with sudo on Unix-like systems).
  • Make sure Docker is running before using Flist CLI commands.
  • If you face issues with Docker commands, try logging out and logging back in to refresh your Docker credentials.
  • If you encounter compilation errors, ensure you have the latest version of V installed.

Development

To modify the Flist CLI:

  1. Make your changes to the flist.v file.
  2. Rebuild the project using make rebuild
  3. Test your changes thoroughly across different operating systems if possible.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Apache 2.0 License