Giter Club home page Giter Club logo

finch's People

Contributors

aelse avatar ahsan-z-khan avatar anqipang avatar austinvazquez avatar azhouwd avatar chandrushetty avatar chenrui333 avatar chris-short avatar codechanning avatar davidhsingyuchen avatar dependabot[bot] avatar estesp avatar ginglis13 avatar github-actions[bot] avatar haytok avatar jlbutler avatar kevinliaws avatar kiryl1 avatar kokes avatar mharwani avatar niklasmtj avatar ningziwen avatar ollypom avatar pendo324 avatar riverphillips avatar sam-berning avatar vsiravar avatar w-haibara avatar weikequ 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  avatar  avatar  avatar  avatar  avatar

finch's Issues

First time of running Finch command after installation triggered by Github action fails in arm64 runners

Describe the bug
First time of running Finch command after installation triggered by Github action fails in arm64 runners.
Only happens at the first time before any successful command call after installation. (Failed command call doesn't help so retry doesn't work)
Only happens when it is triggerd by Github action.
Only happens in arm64 runners.

See additional contexts for more experiments.

Steps to reproduce
Run the "release-installer" workflow, or restart the workflow to run the simplified version.

Currently only the members could run them. If you are interested in reproducing this but you are not member, you could add your own self-hosted runners to your forked repo and run with them.

Expected behavior
The command should succeed.

Screenshots or logs
Simplified workflow failure: https://github.com/runfinch/finch/actions/runs/3605504495/jobs/6075968565

Run finch version
/Users/ec2-user/ar/_work/_temp/1c6f50b2-a657-4625-99f4-4b80cce4f856.sh: line 1: 57022 Killed: 9               finch version
Error: Process completed with exit code [13](https://github.com/runfinch/finch/actions/runs/3605504495/jobs/6075968565#step:8:14)7.

Additional context

Confirmed the user used by github action is "ec2-user" by printing the user in Github action.
Confirmed the path of "finch" is from "/Applications/Finch/bin/finch" by running "which" and "readlink" commands in Github action.

Here are the experiements I did.

Succeeded scenarioes:

  1. first time of runningfinch version after installation triggered by Github action in amd64 hosts with macOS version 10/11/12/13
  2. running "ls" triggered by Github action in arm64 hosts
  3. After installation (not matter triggered by Github action or manual action in ssh), ssh to the host and manually run finch version.
  4. After installation (not matter triggered by Github action or manual action in ssh), ssh to the host and manually run finch version for one time. Then run an Github action that only runs finch version in arm64 hosts.

Failed scenarioes (by same 137 error):

  1. first time of runningfinch version after installation triggered by Github action in arm64 hosts with macOS version 11/12/13 (arm64 is not supported with macOS version 10)
  2. Set permissions:contents:write-all in yaml. Others are same as 1.
  3. After installation (not matter triggered by Github action or manual action in ssh), ssh to the host and manually run finch version for one time. Then run an Github action that re-installs and then runs finch version in arm64 hosts.
  4. Add 30s sleep before running finch version and after installation in yaml. Others are same as 1.
  5. Add retry for finch version in Github action. Others are same as 1.

Some directions for further investigation:

  1. Try to make Finch .app to see if it can resolve. https://superuser.com/a/28400
  2. As finch version can already reproduce the issue, which doesn't require any deep dependencies, maybe we can minimize an application to reproduce this. For example, create a cobra application with version command only, and make it a macOS installer. Try to run the version command in the workflow to see if it can be reproduced. It can't, the cause must be in the incrementals from the minimum application to the full Finch. Slightly increment the features related to version command until it can be reproduced. If it can be reproduced with the minimum application, we can probably cut tickets to Github action or Cobra.

```finch vm init``` ```finch vm start``` Finch virtual machine failed to start. Symbol not found

Describe the bug
I am unable to start a VM on my Macbook pro (10.15.4).

When I run finch vm init, I get the logs listed at the bottom, and finch vm start gives the same message.

These prevent me from running finch.

Steps to reproduce

  1. install Finch from using Finch-v0.1.0-x86_64.pkg
  2. run the finch vm init command and log at the bottom
  3. run finch vm start command and log at bottom

Screenshots or logs

$ finch vm init 
INFO[0000] Using default values due to missing config file at "/Users/admin/.finch/finch.yaml" 
INFO[0000] "/Users/admin/.finch" directory doesn't exist, attempting to create it 
INFO[0000] binaries directory doesn't exist             
INFO[0000] Requesting root access to finish network dependency configuration 
Password:
INFO[0003] sudoers file not found: %!w(*fs.PathError=&{open /etc/sudoers.d/finch-lima 2}) 
INFO[0003] Initializing and starting Finch virtual machine... 
ERRO[0032] Finch virtual machine failed to start, debug logs: time="2022-11-25T06:53:20+09:00" level=info msg="Terminal is not available, proceeding without opening an editor"
time="2022-11-25T06:53:20+09:00" level=info msg="Starting socket_vmnet daemon for \"finch-shared\" network"
time="2022-11-25T06:53:20+09:00" level=info msg="Attempting to download the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.x86_64.qcow2\"" digest="sha256:b5b9bec91eee65489a5745f6ee620573b23337cbb1eb4501ce200b157a01f3a0"
time="2022-11-25T06:53:22+09:00" level=info msg="Downloaded the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.x86_64.qcow2\""
time="2022-11-25T06:53:25+09:00" level=info msg="Attempting to download the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-amd64.tar.gz\"" digest="sha256:b7f76a3bf1b8161eb94ebe885945feb2887dfc0d274f9da908a17bc0ef853eb9"

76.00 MiB / 221.66 MiB (34.29%) ? p/s
140.00 MiB / 221.66 MiB (63.16%) 12.79 MiB/s
196.00 MiB / 221.66 MiB (88.42%) 12.69 MiB/s
221.66 MiB / 221.66 MiB (100.00%) 15.71 MiB/stime="2022-11-25T06:53:45+09:00" level=info msg="Downloaded the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-amd64.tar.gz\""
time="2022-11-25T06:53:50+09:00" level=error msg="[hostagent] failed to run [/Applications/Finch/lima/bin/qemu-system-x86_64 -M none -accel help]: stdout=\"\", stderr=\"dyld: Symbol not found: _vmnet_enable_isolation_key\\n  Referenced from: /Applications/Finch/lima/bin/qemu-system-x86_64 (which was built for Mac OS X 11.0)\\n  Expected in: /System/Library/Frameworks/vmnet.framework/Versions/A/vmnet\\n in /Applications/Finch/lima/bin/qemu-system-x86_64\\n\"" fields.level=fatal
time="2022-11-25T06:53:50+09:00" level=fatal msg="host agent process has exited: exit status 1" 
FATA[0032] exit status 1         
$ finch vm start
INFO[0000] Starting existing Finch virtual machine...   
ERRO[0001] Finch virtual machine failed to start, debug logs: time="2022-11-25T07:00:16+09:00" level=info msg="Using the existing instance \"finch\""
time="2022-11-25T07:00:16+09:00" level=info msg="Attempting to download the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-amd64.tar.gz\"" digest="sha256:b7f76a3bf1b8161eb94ebe885945feb2887dfc0d274f9da908a17bc0ef853eb9"
time="2022-11-25T07:00:16+09:00" level=info msg="Using cache \"/Users/admin/Library/Caches/lima/download/by-url-sha256/86e8280c3d639367efe7a50660ecfc4eade10b1696a9deeba27fdbf086d11098/data\""
time="2022-11-25T07:00:18+09:00" level=error msg="[hostagent] failed to run [/Applications/Finch/lima/bin/qemu-system-x86_64 -M none -accel help]: stdout=\"\", stderr=\"dyld: Symbol not found: _vmnet_enable_isolation_key\\n  Referenced from: /Applications/Finch/lima/bin/qemu-system-x86_64 (which was built for Mac OS X 11.0)\\n  Expected in: /System/Library/Frameworks/vmnet.framework/Versions/A/vmnet\\n in /Applications/Finch/lima/bin/qemu-system-x86_64\\n\"" fields.level=fatal
time="2022-11-25T07:00:18+09:00" level=fatal msg="host agent process has exited: exit status 1" 
FATA[0001] exit status 1  

OS package bundling

What is the problem you're trying to solve?.
Improve VM init/start times by installing packages from local disk rather than always going to the internet. Also allow stricter version pinning.

Describe the feature you'd like
There are some in progress PRs to Lima to add support for additionalArchives which allow users to mount customized data before the package installation step. We can use these features to solve the problem presented in this issue.

Additional context
Add any other context or screenshots about the feature request here.

`BeforeEach` of `login` sometimes fails in CI

Describe the bug

BeforeEach of login sometimes fails in CI.

Steps to reproduce

It's flaky. Sometimes it passes, while sometimes it fails.

Expected behavior

It should always pass.

Screenshots or logs

https://github.com/runfinch/finch/actions/runs/3537401635/jobs/5937342920:

  time="2022-11-24T03:26:51Z" level=fatal msg="failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: time=\"2022-11-24T03:26:51Z\" level=fatal msg=\"listen tcp 0.0.0.0:52086: bind: address already in use\"\nFailed to write to log, write /home/ec2-user.linux/.local/share/nerdctl/1935db59/containers/finch/cf16f87c4026e285e41a856a4364e8ca81c312fd7e5da5fe7d0ec1179e98f6c0/oci-hook.createRuntime.log: file already closed: unknown"
  time="2022-11-24T03:26:51Z" level=fatal msg="exit status 1"
  [FAILED] in [BeforeEach] - /Users/ec2-user/go/pkg/mod/github.com/runfinch/[email protected]/command/command.go:122 @ 11/24/22 03:26:51.812

Can't uninstall finch via brew

Describe the bug
I can't uninstall or upgrade from 0.1.0 to 0.1.1 because uninstall is failed

Steps to reproduce

$ brew uninstall --force --cask finch
==> Uninstalling Cask finch
==> Uninstalling packages; your password may be necessary:
org.Finch.v0.1.0
find: -delete: forbidden when the current directory cannot be opened
Error: Failure while executing; `/usr/bin/sudo -E -- /usr/bin/xargs -0 -- /opt/homebrew/Library/Homebrew/cask/utils/rmdir.sh` exited with 1. Here's the output:
find: -delete: forbidden when the current directory cannot be opened

Expected behavior
finch uninstalls successfully

Additional context

% brew --version
Homebrew 3.6.14

Mac M1 v12.6.1

Finch GPU support

What is the problem you're trying to solve?.
I quickly went through the README and couldn't find an entry regarding GPU usage with Finch. The project looks exciting overall, however, in my case, GPU availability is more than a nice-to-have, and I suppose most professionals working with ML would have a similar opinion.

Describe the feature you'd like
It would be amazing to have finch run to support nvidia-container-toolkit and have a flag --gpus allowing the user to provide one or more NVIDIA devices to the running container.

Additional context

Env variables passing not compatible with docker command

What is the problem you're trying to solve?.
I use finch as a docker alias

alias docker=finch

Env variables in Docker can be passed just with the name and then the value will be passed automatically

❯ export FOO=bar
❯ docker run -e FOO ubuntu env
HOME=/root
FOO=bar
HOSTNAME=809ed84fc40f

But with finch I have to pass the value explicitly. In the output the FOO variable is missing

❯ alias docker=finch
❯ export FOO=bar
❯ docker run -e FOO ubuntu env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOME=/root

Describe the feature you'd like
Allow passing variables with the name only, so that finch run is compatible to the docker run command and can be used as a drop-in replacement

Error building hello-finch

Describe the bug
I've recently installed Finch on MacOS Monterrey and ran into an issue building the hello world example. Instead I'm getting the following error:

$ pwd
/Users/nkpeters/workspace/finch/contrib/hello-finch

$ finch build . -t hello-finch
bash: line 1: cd: /Users/nkpeters/workspace/finch/contrib/hello-finch: No such file or directory
FATA[0000] lstat /Users/nkpeters/Containerfile: no such file or directory
FATA[0000] exit status 1

Note that finch vm init and finch run --rm public.ecr.aws/finch/hello-finch both ran without issue.

Steps to reproduce

$ git clone [email protected]:runfinch/finch.git
$ cd contrib/hello-finch
$ finch build . -t hello-finch

Expected behavior
I expect to be able to build the container image using the default finch installation. While I'm happy to debug and figure out how to fix this on my system, my concern is that some users (such as myself) may run into this roadblock which may hinder finch adoption.

Screenshots or logs
n/a

Additional context

$ finch version
Finch version: v0.1.1

$ sw_vers
ProductName:	macOS
ProductVersion:	12.3.1
BuildVersion:	21E258

$ cat ~/.finch/finch.yaml
cpus: 3
memory: 4GiB

finch vm init fails ("failed to read sudoers file")

Hi, thank you for sharing the great project!
I'm excited to try it, but finch vm init fails in my environment.

% uname -v
Darwin Kernel Version 22.1.0: Sun Oct  9 20:14:54 PDT 2022; root:xnu-8792.41.9~2/RELEASE_X86_64
% sw_vers
ProductName:		macOS
ProductVersion:		13.0.1
BuildVersion:		22A400

Error message:

% finch vm init --debug
DEBU[0000] Creating limactl command: ARGUMENTS: [ls -f {{.Status}} finch], LIMA_HOME: /Applications/Finch/lima/data 
DEBU[0000] Status of virtual machine:                   
ERRO[0000] failed to read sudoers file: %!w(*fs.PathError=&{open /etc/sudoers.d/finch-lima 13}) 
INFO[0000] Requesting root access to finish network dependency configuration 
DEBU[0000] Creating limactl command: ARGUMENTS: [sudoers], LIMA_HOME: /Applications/Finch/lima/data 
Password:
DEBU[0002] config file not found: %!w(*fs.PathError=&{open /Applications/Finch/lima/data/_config/override.yaml 2}) 
ERRO[0002] failed to read sudoers file: %!w(*fs.PathError=&{open /etc/sudoers.d/finch-lima 13}) 
ERRO[0002] Dependency error: failed to install dependencies: [Failed to finish installing rootful dependencies which are needed for external network access within the guest OS. Boot will continue, but container exposed ports will not be accessible from macOS.: [skipping installation of network configuration because pre-requisites are missing]] 
FATA[0002] failed to load the lima config file: open /Applications/Finch/lima/data/_config/override.yaml: no such file or directory 

I checked /etc/sudoers.d/finch-lima, and the permission was rw-------

% ls -l /etc/sudoers.d/finch-lima
-rw------- 1 root wheel 983 Nov 27 10:05 /etc/sudoers.d/finch-lima

So I tried changing it to 644, and then I'm able to do finch vm init stop start, but I'm not sure if this is correct.
May I ask what's the expected permission for this /etc/sudoers.d/finch-lima?

If rw------- isn't correct, could this be because my login shell's umask (it's 077) is respected when the file is created?

Switch buildkit containerd worker namespace to finch

What is the problem you're trying to solve?.
buildkit can either leverage a containerd worker or an OCI worker, currently the Finch default is the OCI worker. This can be frustrating as images stored within the containerd image store can not be used for builds.

$ cat Dockerfile.one 
FROM debian
RUN apt-get update

$ cat Dockerfile.two 
FROM mydebian
RUN apt-get install curl -y

$ finch build -t mydebian -f Dockerfile.one .
 => exporting to oci image format                                                                                                                                                                                                            1.6s
 => => exporting layers                                                                                                                                                                                                                      0.6s
 => => exporting manifest sha256:40a97ff6d7d290692cade4561700b7b47edb67156776dee6e77ce0f5cd52f6de                                                                                                                                            0.0s 
 => => exporting config sha256:36a6661f7f73f1242133ddff248abf509fa67d93190aa2baa962caca0155b2f9                                                                                                                                              0.0s 
 => => sending tarball   
unpacking docker.io/library/mydebian:latest (sha256:40a97ff6d7d290692cade4561700b7b47edb67156776dee6e77ce0f5cd52f6de)...                                                                                                                          
Loaded image: docker.io/library/mydebian:latest

$ finch image ls
REPOSITORY          TAG       IMAGE ID        CREATED           PLATFORM       SIZE         BLOB SIZE
mydebian            latest    40a97ff6d7d2    6 minutes ago     linux/arm64    146.1 MiB    64.3 MiB

$ finch build -t mydebian -f Dockerfile.two .
[+] Building 0.6s (3/3) FINISHED                                                                                                                                                                                                                  
 => [internal] load build definition from Dockerfile.two                                                                                                                                                                                     0.0s
 => => transferring dockerfile: 82B                                                                                                                                                                                                          0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                                                                                                              0.0s
 => ERROR [internal] load metadata for docker.io/library/mydebian:latest                                                                                                                                                                     0.5s
------
 > [internal] load metadata for docker.io/library/mydebian:latest:
------
Dockerfile.two:1
--------------------
   1 | >>> FROM mydebian
   2 |     RUN apt-get install curl -y
--------------------
error: failed to solve: mydebian: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed (did you mean debian?)
FATA[0000] unrecognized image format                    
FATA[0000] exit status 1    

Describe the feature you'd like
The finch default flipped to the containerd worker in the buildkit.toml file, therefore unblocking this common workflow. Lima has already switched to the containerd worker.

I'm not aware of a current workaround, as I don't think there is a way to customize the buildkit.toml file via finch.yaml.

Cannot see finch VM status

What is the problem you're trying to solve?.
I want to check the status of the VM that finch has started.

Describe the feature you'd like
finch vm should have a status command to see the vm status.

Usage:
  finch vm [command]

Available Commands:
  init        Initialize the virtual machine
  remove      Remove the virtual machine instance
  start       Start the virtual machine
  stop        Stop the virtual machine

Add status command,
status Status of the virtual machine

Distribute Finch with HomeBrew Using Goreleaser

What is the problem you're trying to solve?.
I'd like to install Finch using brew. Create a Homebrew cask and add installation instructions in the README for macOS users.

Describe the feature you'd like
GoReleaser already has a homebrew support. It'd be worth investigating that for Homebrew.

Additional context
-

Print `nerdctl version` in `finch version`

What is the problem you're trying to solve?.

The nerdctl version information is not printed in finch version

$ finch version
Finch version: v0.1.0

Describe the feature you'd like
I'd expect finch version to work like this (same as nerdctl version except the first three lines)

$ finch version
Finch:
 Version: v0.1.0
  
Client:
 Version:	v1.0.0
 OS/Arch:	linux/amd64
 Git commit:	c00780a1f5b905b09812722459c54936c9e070e6
 buildctl:
  Version:	v0.10.5
  GitCommit:	bc26045116045516ff2427201abd299043eaf8f7

Server:
 containerd:
  Version:	v1.6.8
  GitCommit:	9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
 runc:
  Version:	1.1.4
  GitCommit:	v1.1.4-0-g5fd4c4d1

Additional context

Bug report template has a misspelling

Describe the bug
The bug report template has a misspelling "probem" should be "problem."

Steps to reproduce
Look at the template.

Expected behavior
Correct spelling

Screenshots or logs
n/a

Additional context
n/a

The logo isn't visible in the README with the dark theme

Describe the bug
Briefly describe the problem you are having.

The logo isn't visible in the README with the dark theme

Steps to reproduce
A clear, step-by-step set of instructions to reproduce the bug.

Enable dark theme on MacOS, view the readme with Safari

Expected behavior
Description of what you expected to happen.

See the logo

Initially, I thought there was no readme until I scrolled down.

Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.

Screenshot 2022-11-23 at 08 46 13

Enable logging for containers launched without -d

What is the problem you're trying to solve?.
Currently if you run a container without -d option, no logs are persisted.

Describe the feature you'd like
Would like logs to be available even without -d

Additional context
Add any other context or screenshots about the feature request here.

Option to support volume mounts outside user $HOME

What is the problem you're trying to solve?.
Currently, finch containers can only access resources inside user's home directory. I think there should be more flexibility in mount locations exposed by the virtual machine.

Describe the feature you'd like
Allow users to configure additional mount locations during VM start. These locations will be accessible to containers through commands such as finch run or finch cp.

Additional context
Adding an option to configure new mount locations in ${HOME}/.finch/finch.yaml seems like a good approach. And perhaps through a command line flag, for eg:

finch vm start -v /tmp/data

This name is already in use...

Describe the bug

You used the name of a product that's been around since 2007.

Steps to reproduce
Look at the name of the repository

Expected behavior
Not to have a someone add confusion to the market place by reusing an existing products name.

Screenshots or logs

$ apt-cache search ^finch
finch - text-based multi-protocol instant messaging client
finch-dev - text-based multi-protocol instant messaging client - development
finch-dbgsym - debug symbols for finch

Additional context
https://en.wikipedia.org/wiki/Finch_(software)
https://developer.pidgin.im/wiki/Using%20Finch
https://packages.debian.org/unstable/finch
and many many more...

Persistent volume support

What is the problem you're trying to solve?.
Lima recently merged support for persistent data volumes, we should enable it in Finch by default so data can persist between different VM initializations.

Describe the feature you'd like
Add persistent volume creation and management to Finch, along with scripts that mount the containerd directories onto the volume.

Additional context
Add any other context or screenshots about the feature request here.

pull images failed

finch pull --platform=amd64 xxx

FATA[1167] failed to extract layer sha256:9cc8d31519b533c03cd8347147f9ea0b9bfbda4650200d388a1495a34812283f: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount3705620677: failed to Lchown "/var/lib/containerd/tmpmounts/containerd-mount3705620677/kubeflow/src" for UID 29511686, GID 1085706827: lchown /var/lib/containerd/tmpmounts/containerd-mount3705620677/kubeflow/src: invalid argument (Hint: try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): unknown
FATA[1168] exit status 1

Installer command fails to install pkg in M1 macOS without Rosetta

Describe the bug
Current aarch64 installer can't be installed by installer command in M1 macOS without Rosetta installed.

Steps to reproduce

  1. Get a fresh M1 macOS host without Rosetta installed. (For example use macOS EC2: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-mac-instances.html)
  2. Run /usr/bin/pgrep -q oahd && echo Yes || echo No to validate Rosetta is not installed. "No" means it is not installed.
  3. Run sudo installer -pkg <aarch64 installer pkg path> -target /

Expected behavior
Installation succeeds.

Screenshots or logs

~ % sudo installer -pkg Finch-v0.1.1-aarch64.pkg -target /
installer: This package requires Rosetta 2 to be installed.
                Please install Rosetta 2 and then try again.
                    `sudo softwareupdate --install-rosetta`

installer: Error - Finch can’t be installed on this computer.

Additional context
Found this thread. This might be fixed by specifying hostArchitectures in installer.

Ability to copy files from the host inside a container

What is the problem you're trying to solve?.
I'd like to copy some files from my host inside a container.

Describe the feature you'd like
The equivalent of nerdctl cp (https://github.com/containerd/nerdctl#whale-nerdctl-cp) available via finch cp.

Alternatively, direct access to the nerdctl command for operations that are currently non supported by finch.

Additional context
Add any other context or screenshots about the feature request here.

`finch stats` on a container without a memory limit reports 16 exbibytes

Describe the bug
When running finch stats without a memory limit on a container, finch is reporting the limit as 16 EiB (exbibytes). I'm unsure where this number has come from, my mac is 32GB of memory but the finch VM is set to 4GiB of memory.

Steps to reproduce

finch run --detach ubuntu sleep 120
07e265b0e4b95c82f04c82ed2b3fcc2d19d9354a37c33b5137a10e680a89bbbb

finch run --detach --memory 1g ubuntu sleep 120
42a0e423323b5bb6ee2a928e5a93554bfad1bd51ac75f40e0390aa225b22ded5

finch stats
CONTAINER ID   NAME           CPU %     MEM USAGE / LIMIT   MEM %     NET I/O         BLOCK I/O   PIDS
07e265b0e4b9   ubuntu-07e26   0.00%     364KiB / 16EiB      0.00%     1.16kB / 682B   0B / 0B     1
42a0e423323b   ubuntu-42a0e   0.00%     364KiB / 1GiB       0.03%     1.87kB / 752B   0B / 0B     1

Expected behavior
finch stats should be showing the memory limit of an unrestricted container as the memory limit of the VM.

[Feature request] Install finch via homebrew

What is the problem you're trying to solve?.

Installing finch by downloading the binary is ok, but integrating it with homebrew for upgrades would be even better.

Describe the feature you'd like

Homebrew is the de facto standard to install software on OSX, so making it available to install as brew install finch would make easier for folks to install and update it.

Additional context

finch vm init fails ("Terminal is not available, proceeding without opening an editor")

I tried to initialize Finch but finch vm init fails in my environment.

% uname -v
Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64
% sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.7
BuildVersion:	19H15

Error Message:

% finch vm init
INFO[0000] binaries directory doesn't exist
INFO[0000] Requesting root access to finish network dependency configuration
Password:
INFO[0004] Initializing and starting Finch virtual machine...
ERRO[0010] Finch virtual machine failed to start, debug logs: time="2022-11-27T14:29:40+09:00" level=info msg="Terminal is not available, proceeding without opening an editor"
time="2022-11-27T14:29:40+09:00" level=info msg="Starting socket_vmnet daemon for \"finch-shared\" network"
time="2022-11-27T14:29:40+09:00" level=info msg="Attempting to download the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.x86_64.qcow2\"" digest="sha256:b5b9bec91eee65489a5745f6ee620573b23337cbb1eb4501ce200b157a01f3a0"
time="2022-11-27T14:29:42+09:00" level=info msg="Downloaded the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.x86_64.qcow2\""
time="2022-11-27T14:29:43+09:00" level=info msg="Attempting to download the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-amd64.tar.gz\"" digest="sha256:b7f76a3bf1b8161eb94ebe885945feb2887dfc0d274f9da908a17bc0ef853eb9"
time="2022-11-27T14:29:43+09:00" level=info msg="Using cache \"/Users/nakamura/Library/Caches/lima/download/by-url-sha256/86e8280c3d639367efe7a50660ecfc4eade10b1696a9deeba27fdbf086d11098/data\""
time="2022-11-27T14:29:46+09:00" level=error msg="[hostagent] failed to run [/Applications/Finch/lima/bin/qemu-system-x86_64 -M none -accel help]: stdout=\"\", stderr=\"dyld: Symbol not found: _vmnet_enable_isolation_key\\n  Referenced from: /Applications/Finch/lima/bin/qemu-system-x86_64 (which was built for Mac OS X 11.0)\\n  Expected in: /System/Library/Frameworks/vmnet.framework/Versions/A/vmnet\\n in /Applications/Finch/lima/bin/qemu-system-x86_64\\n\"" fields.level=fatal
time="2022-11-27T14:29:46+09:00" level=fatal msg="host agent process has exited: exit status 1"
FATA[0010] exit status 1
%

Any help would be greatly appreciated.

Finch VM cannot be initiated without an internet connection

Describe the bug
If you attempt to initialize a Finch VM in an environment without internet connection (or without access to the yum repositories) it fails, and the finch vm init command hangs forever.

Steps to reproduce
Disconnect the machine from the internet and initialize a VM.

$ finch vm init
INFO[0000] Initializing and starting Finch virtual machine...

If you get a shell into the Virtual machine you notice the cloud-final service has failed.

$ limactl shell finch
[systemd]
Failed Units: 1
  cloud-final.service

Checking the logs you can see where it fails:

$ sudo journalctl -u cloud-final.service
Dec 13 18:33:03 lima-finch cloud-init[888]: LIMA| Executing /mnt/lima-cidata/provision.system/00000000
Dec 13 18:33:03 lima-finch cloud-init[888]: Fedora 37 - aarch64                             0.0  B/s |   0  B     00:00
Dec 13 18:33:03 lima-finch cloud-init[888]: Errors during downloading metadata for repository 'fedora':
Dec 13 18:33:03 lima-finch cloud-init[888]:   - Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=aarch64 [Could not res>
Dec 13 18:33:03 lima-finch cloud-init[888]:   - Curl error (6): Couldn't resolve host name for https://mirrors.fedoraproject.org/metalink?repo=fedora-37&arch=aarch64&countme=1 [Cou
Dec 13 18:33:03 lima-finch cloud-init[888]: Error: Failed to download metadata for repo 'fedora': Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for>
Dec 13 18:33:03 lima-finch cloud-init[888]: LIMA| WARNING: Failed to execute /mnt/lima-cidata/provision.system/00000000

I believe this is failing on the provision commands in the lima configuration file:

provision:
# Install packages needed for QEMU user-mode emulation
- mode: system
  script: |
    #!/bin/bash
    dnf install -y --setopt=install_weak_deps=False qemu-user-static-aarch64 qemu-user-static-arm qemu-user-static-x86

Expected behavior
The VM to initialize successfully or fail gracefully.

Doc edits/additions still do not pass the required checks due to the e2e test matrix strategy

Describe the bug

  • Doc edits/additions still do not pass the required checks due to the e2e test matrix strategy necessitating the matrix be expanded before the checks passes.

Steps to reproduce

  • Edit a doc.
  • Create a PR.
  • See that most CI is successful, including the e2e tests one
  • See that the specific e2e tests for each platform is still pending.

Expected behavior

  • Expectation is when a PR only contains doc changes, e2e test status check for all platforms are skipped.

Finch vm init failed after install

Describe the bug
Using Finch Finch-v0.1.0-aarch64 the command vm init fails with fatal error as seen in the logs section.

It the end it looks like init did succeed as I can build and run containers.

Steps to reproduce
Install Finch-v0.1.0-aarch64 and run finch vm init

Expected behavior
No fatal error.

Screenshots or logs

finch vm init
INFO[0000] Using default values due to missing config file at "/Users/r.zlender/.finch/finch.yaml"
INFO[0000] "/Users/r.zlender/.finch" directory doesn't exist, attempting to create it
FROM alpine:latest
INFO[0002] binaries directory doesn't exist
INFO[0002] Requesting root access to finish network dependency configuration
Password:
INFO[0010] sudoers file not found: %!w(*fs.PathError=&{open /etc/sudoers.d/finch-lima 2})
INFO[0010] Initializing and starting Finch virtual machine...
INFO[0150] Finch virtual machine started successfully
FATA[0150] failed to setup ssh client: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

Additional context
Add any other context about the problem here.

finch build fails when using local base image

Describe the bug
Briefly describe the problem you are having.
While building images with locally built/stored images, the build stumbles with an error and does not build an image.

Host info

siravara@bcd074105a94 vishwas-tests % uname -a
Darwin bcd074105a94.ant.amazon.com 21.6.0 Darwin Kernel Version 21.6.0: Sat Jun 18 17:07:22 PDT 2022; root:xnu-8020.140.41~1/RELEASE_ARM64_T6000 arm64

Steps to reproduce
A clear, step-by-step set of instructions to reproduce the bug.
Base image docker file

siravara@bcd074105a94 vishwas-tests % cat Dockerfile_parent 
FROM public.ecr.aws/docker/library/alpine:3.13

Build base image

siravara@bcd074105a94 vishwas-tests % finch build -f Dockerfile_parent -t baseimage:latest .

siravara@bcd074105a94 vishwas-tests % finch images
REPOSITORY    TAG       IMAGE ID        CREATED         PLATFORM       SIZE       BLOB SIZE
baseimage     latest    1ebab426c374    10 hours ago    linux/arm64    6.6 MiB    2.6 MiB

Dockerfile that references the base image

siravara@bcd074105a94 vishwas-tests % cat Dockerfile_child 
FROM baseimage:latest

Build image which references baseimage:latest

siravara@bcd074105a94 vishwas-tests % finch build -f Dockerfile_child -t child:latest .  
[+] Building 1.1s (3/3) FINISHED                                                
 => [internal] load build definition from Dockerfile_child                 0.0s
 => => transferring dockerfile: 66B                                        0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => ERROR [internal] load metadata for docker.io/library/baseimage:latest  1.0s
------
 > [internal] load metadata for docker.io/library/baseimage:latest:
------
Dockerfile_child:1
--------------------
   1 | >>> FROM baseimage:latest
   2 |     
   3 |     
--------------------
error: failed to solve: baseimage:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
FATA[0001] unrecognized image format                    
FATA[0001] exit status 1                                

Expected behaviour
Description of what you expected to happen.
Building from a local base image should succeed and produce an image with tag child:latest.

Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.

Additional context
The build is successful using nerdctl with Fedoraas the guest OS on lima.
Add any other context about the problem here.

finch -d -it not supportedm?

finch run -d -it --name ng --platform=amd64 -p 8080:80 nginx /bin/bash
FATA[0000] currently flag -i and -d cannot be specified together (FIXME)
FATA[0000] exit status 1

Package ECR Credential Helper in the Finch VM

What is the problem you're trying to solve?.
Finch should include the ECR credential helper binary in the Finch VM image to save a user having to either install it manually or do a finch login every 12 hours. This issue could be expanded to package all credential helpers (ECR, ACR and GCR) in the VM image if there is demand.

The current way to provide an ECR token to Finch is:

$ aws ecr get-login-password --region <region> | finch login --username AWS --password-stdin <accountid>.dkr.ecr.<region>.amazonaws.com

As a workaround, the ECR Credential Helper could be installed in the VM manually (via a Shell into the VM) or by using a lima user script. An example of using a Lima User Script is to edit /Application/Finch/os/finch.yaml and add:

<snip>
- mode: user
  script: |
    #!/bin/bash
    CREDHELPER="/usr/local/bin/docker-credential-ecr-login"
    if ! [[ -f $CREDHELPER ]]; then
      curl -C - --output docker-credential-ecr-login https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/0.6.0/linux-arm64/docker-credential-ecr-login
      chmod +x docker-credential-ecr-login
      sudo mv ./docker-credential-ecr-login $CREDHELPER
    fi

    [ -L $HOME/.aws ] || ln -s  $(echo "/Users/$(whoami)/.aws") $HOME/.aws
    [ -L $HOME/.docker ] || ln -s  $(echo "/Users/$(whoami)/.finch") $HOME/.docker

And the reinitialize a VM with finch vm stop, finch vm remove, finch vm init.

You also need to update your docker credential file located at /Users/<user>/.finch/config.json, there are examples in the ecr credential helper repo. My file looks like:

{
        "credsStore": "ecr-login"
}

Describe the feature you'd like
The docker-credential-ecr-login package to already be in the VM, with the relevant links to the $HOME/.aws and $HOME/.docker directories.


Update

Since Finch moved to rootful containerd, the user script is now as follows:

 <snip>
- mode: user
  script: |
    <snip>
    
    CREDHELPER="/usr/local/bin/docker-credential-ecr-login"
    if ! [[ -f $CREDHELPER ]]; then
      curl -C - --output docker-credential-ecr-login https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/0.6.0/linux-arm64/docker-credential-ecr-login
      chmod +x docker-credential-ecr-login
      sudo mv ./docker-credential-ecr-login $CREDHELPER
    fi

    sudo ln -fs  $(echo "/Users/$(whoami)/.aws") /root/.aws
    sudo ln -fs  $(echo "/Users/$(whoami)/.finch") /root/.docker

finch vm init errors on macOS Ventura

Describe the bug

Running finch vm init results in errors.

Steps to reproduce

finch vm init

Expected behavior

Finch vm is initialized.

Screenshots or logs

❯ finch vm init
INFO[0000] binaries directory doesn't exist             
INFO[0000] Requesting root access to finish network dependency configuration 
Password:
INFO[0005] sudoers file not found: %!w(*fs.PathError=&{open /etc/sudoers.d/finch-lima 2}) 
ERRO[0005] Dependency error: failed to install dependencies: [Failed to finish installing rootful dependencies which are needed for external network access within the guest OS. Boot will continue, but container exposed ports will not be accessible from macOS.: [error changing owner of directory /opt/finch, err: exit status 1, stderr: sudo: chown: command not found
]] 
INFO[0005] Initializing and starting Finch virtual machine... 
ERRO[0025] Finch virtual machine failed to start, debug logs: time="2022-12-06T22:46:27-08:00" level=info msg="Terminal is not available, proceeding without opening an editor"
time="2022-12-06T22:46:27-08:00" level=info msg="Starting socket_vmnet daemon for \"finch-shared\" network"
time="2022-12-06T22:46:27-08:00" level=info msg="Attempting to download the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.aarch64.qcow2\"" digest="sha256:cc8b0f49bc60875a16eef65ad13e0e86ba502ba3585cc51146f11f4182a628c0"
time="2022-12-06T22:46:28-08:00" level=info msg="Downloaded the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.aarch64.qcow2\""
time="2022-12-06T22:46:30-08:00" level=info msg="Attempting to download the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\"" digest="sha256:e4c9b9434c88847f4d18f8b84c0d073555e4c949546cfa8a21e719de67afdf70"

49.85 MiB / 187.53 MiB (26.58%) ? p/s
105.54 MiB / 187.53 MiB (56.28%) 11.14 MiB/s
160.52 MiB / 187.53 MiB (85.60%) 11.13 MiB/s
187.53 MiB / 187.53 MiB (100.00%) 15.09 MiB/stime="2022-12-06T22:46:48-08:00" level=info msg="Downloaded the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\""
time="2022-12-06T22:46:48-08:00" level=error msg="[hostagent] failed to run [system_profiler SPNetworkDataType -json]: stdout=\"\", stderr=\"\": exec: \"system_profiler\": executable file not found in $PATH" fields.level=fatal
time="2022-12-06T22:46:48-08:00" level=fatal msg="host agent process has exited: exit status 1" 
FATA[0025] exit status 1                                

Additional context
Add any other context about the problem here.

Finch Icon doesn't show up on GitHub iPhone App

Describe the bug
Finch logo is blank in the GitHub App finch repository.

Steps to reproduce

  1. Open GitHub app on your iPhone.
  2. Go to finch repository.
  3. Check the read me section.
  4. Finch logo/icon is blank.

Expected behavior
Finch icon is displayed.

Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.

imageAdditional context
Add any other context about the problem here.

Inject version in build time instead of hardcoding it

What is the problem you're trying to solve?.
The version is currently hardcoded in code. https://github.com/runfinch/finch/blob/main/cmd/finch/version.go#L14

It makes the auto release difficult as we need to make code change for the hardcoded version every time.

Describe the feature you'd like
Inject the version at build time.
Can make version a parameter of "make" and then pass to CLI.

Additional context
Related blog: https://blog.alexellis.io/inject-build-time-vars-golang/
Copilot example: https://github.com/aws/copilot-cli/blob/mainline/internal/pkg/version/version.go
Nerdctl example: https://github.com/containerd/nerdctl/blob/master/pkg/version/version.go#L20

The main branch code itself binds to the commit hash instead of the semantic version we use for release. So the default version without injecting could be the commit hash.

`finch vm init` fails with nerdctl download error

Describe the bug

Installed finch via brew install finch. Ran finch vm init and received the following error output:

> finch vm init
INFO[0000] binaries directory doesn't exist             
INFO[0000] Requesting root access to finish network dependency configuration 
INFO[0000] sudoers file not found: %!w(*fs.PathError=&{open /etc/sudoers.d/finch-lima 2}) 
INFO[0000] Initializing and starting Finch virtual machine... 
ERRO[0035] Finch virtual machine failed to start, debug logs: time="2022-11-28T16:07:41-06:00" level=info msg="Terminal is not available, proceeding without opening an editor"
time="2022-11-28T16:07:41-06:00" level=info msg="Starting socket_vmnet daemon for \"finch-shared\" network"
time="2022-11-28T16:07:41-06:00" level=info msg="Attempting to download the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.aarch64.qcow2\"" digest="sha256:cc8b0f49bc60875a16eef65ad13e0e86ba502ba3585cc51146f11f4182a628c0"
time="2022-11-28T16:07:41-06:00" level=info msg="Downloaded the image from \"/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.aarch64.qcow2\""
time="2022-11-28T16:07:46-06:00" level=info msg="Attempting to download the nerdctl archive from \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\"" digest="sha256:e4c9b9434c88847f4d18f8b84c0d073555e4c949546cfa8a21e719de67afdf70"
time="2022-11-28T16:08:16-06:00" level=fatal msg="failed to download the nerdctl archive, attempted 2 candidates, errors=[unsupported arch: \"x86_64\" failed to download \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\": Get \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\": dial tcp 140.82.113.4:443: i/o timeout]" 
FATA[0035] exit status 1

Ket failure appears to be:

time="2022-11-28T16:08:16-06:00" level=fatal msg="failed to download the nerdctl archive, attempted 2 candidates, errors=[unsupported arch: \"x86_64\" failed to download \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\": Get \"https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\": dial tcp 140.82.113.4:443: i/o timeout]"

Steps to reproduce

Install finch and attempt to initialize VM?

Expected behavior

VM initialized successfully.

Screenshots or logs

See above.

Additional context

OS info:

image

`/opt/finch/bin/socket_vmnet --version` shows the commit hash of `runfinch/finch`, not the commit hash of `lima-vm/socket_vmnet`

Describe the bug
/opt/finch/bin/socket_vmnet --version shows the commit hash of https://github.com/runfinch/finch, not the commit hash of https://github.com/lima-vm/socket_vmnet

Steps to reproduce

$ finch version
Finch version: v0.1.0

$ /opt/finch/bin/socket_vmnet --version
a16a541

This commit hash exists (a16a541) on https://github.com/runfinch/finch , but does not exist on lima-vm/socket_vmnet@a16a541

Expected behavior

It should print a valid commit hash of https://github.com/lima-vm/socket_vmnet

Additional context

/opt/finch/bin/socket_vmnet seems built from https://github.com/runfinch/finch-core/blob/4e5d8285fa98ef0b851aab095c81a8bf30683f27/Makefile#L21 but the version is accidentally set to the version of https://github.com/runfinch/finch ?

finch vm init fails

Describe the bug
Running finch vm init fails. I have tried to remove the vm and re run init and it persists. It hangs at INFO[0000] Initializing and starting Finch virtual machine... for 10 mins before failing.

Steps to reproduce
finch vm init --debug
finch vm stop
finch vm remove
finch vm init

This recurs through these steps

Expected behavior
VM should be setup through the init process

Screenshots or logs
`bash-5.2$ finch vm remove
INFO[0000] Removing existing Finch virtual machine...

INFO[0000] Finch virtual machine removed successfully

bash-5.2$ finch vm init --debug
DEBU[0000] Creating limactl command: ARGUMENTS: [ls -f {{.Status}} finch], LIMA_HOME: /Applications/Finch/lima/data
DEBU[0000] Status of virtual machine:
DEBU[0000] Creating limactl command: ARGUMENTS: [sudoers], LIMA_HOME: /Applications/Finch/lima/data
DEBU[0000] Creating limactl command: ARGUMENTS: [start --name=finch /Applications/Finch/os/finch.yaml --tty=false],
LIMA_HOME: /Applications/Finch/lima/data
INFO[0000] Initializing and starting Finch virtual machine...
ERRO[0600] Finch virtual machine failed to start, debug logs: time="2022-12-07T13:58:04-05:00" level=info msg="Terminal is not available, proceeding without opening an editor"
time="2022-12-07T13:58:04-05:00" level=info msg="Starting socket_vmnet daemon for "finch-shared" network"
time="2022-12-07T13:58:04-05:00" level=info msg="Attempting to download the image from "/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.aarch64.qcow2"" digest="sha256:cc8b0f49bc60875a16eef65ad13e0e86ba502ba3585cc51146f11f4182a628c0"
time="2022-12-07T13:58:04-05:00" level=info msg="Downloaded the image from "/Applications/Finch/os/Fedora-Cloud-Base-37-1.7.aarch64.qcow2""
time="2022-12-07T13:58:04-05:00" level=info msg="Attempting to download the nerdctl archive from "https://github.com/containerd/nerdctl/releases/download/v1.0.0/nerdctl-full-1.0.0-linux-arm64.tar.gz\"" digest="sha256:e4c9b9434c88847f4d18f8b84c0d073555e4c949546cfa8a21e719de67afdf70"
time="2022-12-07T13:58:04-05:00" level=info msg="Using cache "/Users/hammondt/Library/Caches/lima/download/by-url-sha256/52a7d0c7ca8453dd643a5e0d2c42dc9a63df630575c30f8a80e48e4a8fde94b0/data""
time="2022-12-07T13:58:05-05:00" level=warning msg="[hostagent] failed to run [/Applications/Finch/lima/bin/qemu-system-aarch64 -M none -netdev help]: stdout="Accelerators supported in QEMU binary:\nhvf\ntcg\n", stderr="qemu-system-aarch64: allocate 1073741824 bytes for jit buffer: Invalid argument\n""
time="2022-12-07T13:58:05-05:00" level=info msg="[hostagent] Starting QEMU (hint: to watch the boot progress, see "/Applications/Finch/lima/data/finch/serial.log")"
time="2022-12-07T13:58:05-05:00" level=info msg="SSH Local Port: 56440"
time="2022-12-07T13:58:05-05:00" level=info msg="[hostagent] Waiting for the essential requirement 1 of 5: "ssh""
time="2022-12-07T13:58:15-05:00" level=info msg="[hostagent] Waiting for the essential requirement 1 of 5: "ssh""
time="2022-12-07T13:58:25-05:00" level=info msg="[hostagent] Waiting for the essential requirement 1 of 5: "ssh""
snipped for brevity, but repeats every 10s
time="2022-12-07T14:08:03-05:00" level=info msg="[hostagent] Waiting for the essential requirement 2 of 5: "user session is ready for ssh""
time="2022-12-07T14:08:04-05:00" level=fatal msg="did not receive an event with the "running" status"
FATA[0600] exit status 1`

Additional context
Mac M1 Pro
Darwin Kernel Version 22.1.0: Sun Oct 9 20:15:09 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T6000

`finch compose run [ARGS...]` is not working with specific command

Describe the bug
trying to use finch compose run as docker-compose run, but not working.

finch compose run --remove-orphans web rails new . -d mysql --force --skip-test --javascript=importmap
FATA[0000] unknown flag: --force
FATA[0000] exit status 1

finch compose run db ls -d
FATA[0000] currently flag -i and -d cannot be specified together (FIXME)
FATA[0000] exit status 1

seems like finch does not pass the command to the container, but interprets it as a finch command.

Steps to reproduce

Dockerfile

FROM ruby:3.1.0

ENV APP_PATH /myapp

WORKDIR $APP_PATH

COPY Gemfile $APP_PATH/Gemfile
COPY Gemfile.lock $APP_PATH/Gemfile.lock

RUN bundle install

COPY . $APP_PATH

COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

CMD ["rails", "server", "-b", "0.0.0.0"]

entrypoint.sh

#!/bin/bash
set -e

# Remove a potentially pre-existing server.pid for Rails.
rm -f /myapp/tmp/pids/server.pid

# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"

docker-compose.yml

version: "3.7"

services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
    ports:
      - '3306:3306'
    volumes:
      - mysql-data:/var/lib/mysql

  web:
    build:
      context: .
      dockerfile: Dockerfile
    command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    ports:
      - "3000:3000"
    volumes:
      - .:/myapp
    environment:
      RAILS_ENV: development
    depends_on:
      - db
volumes:
  mysql-data:
touch Gemfile.lock
finch compose build
finch compose run --remove-orphans web rails new . -d mysql --force --skip-test --javascript=importmap

# Success without options
finch compose run --remove-orphans web rails new .

Expected behavior
working like docker-compose

Project logo needs to account for different backgrounds

Describe the bug

The current logo is black on a transparent background. This assumes the logo will only ever be seen with a white or light background. This is a poor assumption.

Steps to reproduce

Enable dark mode and view the rendered GitHub README

Expected behavior

It would be better to either have a solid background, or have tracing around the black elements of the logo to make sure they are visible when put over different colored backgrounds.

Screenshots or logs

image

Download / releases page doesn't work

Describe the bug
Briefly describe the problem you are having.

The Download / releases page doesn't work

Steps to reproduce
A clear, step-by-step set of instructions to reproduce the bug.

Head over to releases

Try to download for aarch64

Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.

Uploading Screenshot 2022-11-23 at 08.44.11.png…

finch run -v is failed

finch --platform=amd64 run --name mysql57 -p 3306:3306 -v /Users/zhanghao/mysql57:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --restart=always -d mysql:5.7

finch logs mysql57
2022-12-02 03:46:02+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.40-1.el7 started.
/usr/bin/chown: changing ownership of '/var/lib/mysql/': Permission denied
/usr/bin/chown: changing ownership of '/var/lib/mysql': Permission denied

README mentions homebrew

Describe the bug
In README.md there is a line: "The design ensures that the local development environment is isolated from the homebrew installation". Does the initial version of Finch have a homebrew installation method?

Steps to reproduce
Look at the README :)

Expected behavior
The README wouldn't mention homebrew install as it might confuse users.

Screenshots or logs
n/a

Additional context
n/a

Mac support for Finch

Describe the bug
Unable to run test container as per here
Could you point me to instructions on how to install containerd in Mac

Steps to reproduce

 % finch vm start
INFO[0000] Starting existing Finch virtual machine...   
INFO[0036] Finch virtual machine started successfully   
% uname -a
Darwin 147dda39bf00.ant.amazon.com 21.6.0 Darwin Kernel Version 21.6.0: Thu Sep 29 20:12:57 PDT 2022; root:xnu-8020.240.7~1/RELEASE_X86_64 x86_64
$ finch run --rm public.ecr.aws/finch/hello-finch

FATA[0000] rootless containerd not running? (hint: use `containerd-rootless-setuptool.sh install` to start rootless containerd): stat /run/user/504/containerd-rootless: no such file or directory 
FATA[0001] exit status 1       

Expected behavior
Description of what you expected to happen.
finch run command needs to succeed

Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.

Additional context
Add any other context about the problem here.

QEMU user mode emulation of x86-64 on ARM not working when x86-64-v2 is required

Describe the bug
On ARM systems, when running a command like
finch run --rm --platform=amd64 public.ecr.aws/docker/library/oraclelinux:9-slim uname -a

on certain OSes that require x86-64-v2 or higher (like oraclelinux:9, in the example), execution will fail with the following error message (or similar):
Fatal glibc error: CPU does not support x86-64-v2

Steps to reproduce
Run the following command on any OS that requires x86-64-v2:
finch run --rm --platform=amd64 public.ecr.aws/docker/library/oraclelinux:9-slim uname -a

So far, this has been observed in the following OSes:

  • amazonlinux:2022
  • oraclelinux:9-slim

But it is expected to fail on any RHEL 9 based OS (since that's where the change to make x64-64-v2 required was made)

Expected behavior
The uname -a command should output system information (or really, it should just not crash).

Screenshots or logs
Already provided in the earlier sections.

Additional context
There are several issues related to this opened across similar applications:

A patch to fix the issue has already been merged into the QEMU project (patch link), and is scheduled for release in QEMU 7.2, which is scheduled for release in December. The QEMU project has already tagged some RC builds, but it hasn't landed in Fedora repositories yet.

As soon as the fixes land in Fedora repositories, we can install the package inside our VM, either through a locally downloaded and bundled RPM, or through enabling Rawhide / Fedora 38 repositories (unless Fedora backports 7.2 to Fedora 37).

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.