GithubHelp home page GithubHelp logo

infuseai / crane Goto Github PK

View Code? Open in Web Editor NEW
279.0 21.0 17.0 16.57 MB

Crane is a easy-to-use and beautiful desktop application helps you build manage your container images.

License: Apache License 2.0

JavaScript 1.92% HTML 1.53% CSS 0.29% Less 2.99% TypeScript 93.27%
docker primehub desktop gui aws ecr container containerization container-image mlops

crane's Introduction

Crane

GitHub release workflow InfuseAI Discord Invite

An easy and beautiful way to manage and build your container images.

Crane helps people building machine-learning notebook container images.

Check this article for more initiatives about Crane.

Like crane? Crane works better with PrimeHub. Crane is the best companion of PrimeHub when it comes to managing docker images. Try PrimeHub Now and join our discord community!

Install

Download the latest version from our releases page.

Features

Building a Container Image

Install packages with apt, conda and pip, which should work in most notebook images. And you can also find a list of our pre-built container images in the Base Image dropdown menu.

Build a Container image

Inspect your own image

Is the large container image slowing you down? Crane's image inspector give you a great overview of the image space usage that visualizes image layer usage to help you reduce the image size.

Build a Container image

Manage Credentials

Manage your remote registry credentials and PrimeHub API token securely. Now DockerHub and AWS ECR are supported. More on the way.

Credentials are stored safely in the Keychain(MacOS), libsecret(Linux) or Credential Vault(Windows).

Manage Credentials

Manage Credentials

Manage Credentials

Manage Local And Remote Images

Simple yet informative GUI. For now to manipulate local and remote images.

Manage Local And Remote Images

Manage Local And Remote Images

Import Remote Image Into PrimeHub

From the Remote Repository list, users can import the image into the connected PrimeHub cluster. This feature only works with public container images for now.

Import Remote Image Into PrimeHub

Let's chat about Crane 🦩

So, what is Crane?

Crane is a minimalist container image builder. You can extend an existing container image with custom apt/conda/pip packages without writing any Dockerfile.

How does Crane work?

Crane generates Dockerfile that installs packages according to your settings, and builds the container image with your local docker engine. You can also push images to your Docker Hub registry.

Why do we build Crane?

Container images are used in many different use cases such as ML. There are lots of ready-to-run container images with Jupyter and various libraries, however people still want to customize images, and this is mostly done through authoring Dockerfile with commands installing additional packages.

Dockerfile is the canonical way for building container images. However, people still want a no-frills way to just simply adding packages to existing images. Crane provides an easier way to build container images without any knowledge of Dockerfile, so the process is more approachable.

We've always had this feature in our open source ML platform PrimeHub to allow customizing container images for a shared and consistent environment. And it's now also available as a standalone desktop app - Crane.

crane's People

Contributors

aar0ntw avatar catcatcatcat avatar ctiml avatar daveflynn avatar even-wei avatar hsatac avatar kentwelcome avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crane's Issues

[Bug] Remote repositories throws the TypeError: Cannot read properties of null (reading 'account') if not configure DockerHub/PrimeHub

Summary

With fresh installed Crane v1.0.0, the Settings page did not configure DockerHub and PrimeHub, when navigating to the REMOTE REPOSITORIES, got the TypeError: Cannot read properties of null (reading 'account')

Expected Behavior (required)

Crane can show the empty result on the remote repositories, or prompt user to setup DockerHub or PrimeHub.

Current Behavior (required)

  1. Crane app show default the crane icon loop on window.
  2. Developer Tools web console throws:
react-dom.production.min.js:216 TypeError: Cannot read properties of null (reading 'account')
    at ListRemoteImage.tsx:178
    at Za (react-dom.production.min.js:262)
    at F.unstable_runWithPriority (scheduler.production.min.js:18)
    at R6 (react-dom.production.min.js:122)
    at T3 (react-dom.production.min.js:261)
    at T7 (react-dom.production.min.js:243)
    at react-dom.production.min.js:123
    at F.unstable_runWithPriority (scheduler.production.min.js:18)
    at R6 (react-dom.production.min.js:122)
    at Yr (react-dom.production.min.js:123)
wr @ react-dom.production.min.js:216
I9.h.callback @ react-dom.production.min.js:216
Xr @ react-dom.production.min.js:131
aa @ react-dom.production.min.js:220
qa @ react-dom.production.min.js:259
F.unstable_runWithPriority @ scheduler.production.min.js:18
R6 @ react-dom.production.min.js:122
x8 @ react-dom.production.min.js:252
T7 @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
F.unstable_runWithPriority @ scheduler.production.min.js:18
R6 @ react-dom.production.min.js:122
Yr @ react-dom.production.min.js:123
g8 @ react-dom.production.min.js:122
s8 @ react-dom.production.min.js:237
gr @ react-dom.production.min.js:170
(anonymous) @ index.js:424
H @ raf.js:36
(anonymous) @ raf.js:40
requestAnimationFrame (async)
c @ raf.js:11
H @ raf.js:39
N @ raf.js:47
(anonymous) @ index.js:423
Za @ react-dom.production.min.js:262
F.unstable_runWithPriority @ scheduler.production.min.js:18
R6 @ react-dom.production.min.js:122
T3 @ react-dom.production.min.js:261
T7 @ react-dom.production.min.js:243
(anonymous) @ react-dom.production.min.js:123
F.unstable_runWithPriority @ scheduler.production.min.js:18
R6 @ react-dom.production.min.js:122
Yr @ react-dom.production.min.js:123
g8 @ react-dom.production.min.js:122
s8 @ react-dom.production.min.js:237
enqueueSetState @ react-dom.production.min.js:133
p0.setState @ react.production.min.js:12
l0.onResize @ index.js:66
ListRemoteImage.tsx:178 Uncaught TypeError: Cannot read properties of null (reading 'account')
    at ListRemoteImage.tsx:178
    at Za (react-dom.production.min.js:262)
    at F.unstable_runWithPriority (scheduler.production.min.js:18)
    at R6 (react-dom.production.min.js:122)
    at T3 (react-dom.production.min.js:261)
    at T7 (react-dom.production.min.js:243)
    at react-dom.production.min.js:123
    at F.unstable_runWithPriority (scheduler.production.min.js:18)
    at R6 (react-dom.production.min.js:122)
    at Yr (react-dom

Make crane available as a docker image

Can this tool be made available as a Linux tool / webapp so that we can host this on a container runtime (like Kubernetes, Docker Compose) and use it as a Docker Image Builder with GUI?

I really like the idea of this tool!

Add application sign for Windows app

When running the Crane v1.0.0 on Windows 10 or 11, it will show:

"Windows protected your PC: Windows Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk."

Can click More Info link and shows execute anyway to continue, but need to sign the release binary.

image

View generated Dockerfile

Feature request:

It would be great to be able to see the generated Dockerfile when building a new image. This would enable users to know what's going on behind the scenes, and share the generated Dockerfiles.

Crane 1.3.0: Unable to save Docker credentials

OS: Mac OS (M1)
Crane version: 1.3.0
Install method: upgraded from 1.2.1 - replaced app in Applications (also tried deleting and installing fresh)

Steps to reproduce:

Launch Crane
Enter Docker credentials
Click save
Click to the local/remote images lists
Click back to Docker credentials - user/pass are empty

[Bug] Crane will build arm64 container image on Mac M1 device

Summary

When we run the Crane on Mac M1 device, the image built by crane will be arm64 architecture. However, if the user wants to push this image to dockerhub and add it into PrimeHub, the container image should be x86-64.

Expected Behavior (required)

Crane can build container images in x86-64 architecture on Mac M1 device.

Current Behavior (required)

The images built by Mac M1 device will be arm64 architecture.

Unable to save Docker credentials

OS: Mac OS (M1)
Crane version: 1.1.0 (upgraded from 1.0 - replaced app in Applications)

Steps to reproduce:

Launch Crane
Enter Docker credentials
Click save
Click to the local/remote images lists
Click back to Docker credentials - user/pass are empty

crane-credentials-dont-save.mp4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.