runfinch / finch Goto Github PK
View Code? Open in Web Editor NEWThe Finch CLI is an open source client for container development
Home Page: https://www.runfinch.com
License: Apache License 2.0
The Finch CLI is an open source client for container development
Home Page: https://www.runfinch.com
License: Apache License 2.0
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
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 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
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...
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.
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
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.
Hi 👋, nice to see the release of Finch.
I'd suggest moving the /Applications/Finch/lima/data
to the home directory for allowing multi-user setup.
e.g., ~/.finch-lima
Note that the directory path should not be long, as the UNIX socket path is limited to 104 chars.
(So , ~/Library/Application Support/...
is not an appropriate path.)
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:
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.
First, thank you for all of your works on finch.
What is the problem you're trying to solve?.
docker has compose exec
command, but finch doesn't.
https://docs.docker.com/engine/reference/commandline/compose_exec/
Describe the feature you'd like
finch compose exec
performs the same action as docker compose exec
finch compose --platform=amd64 up
FATA[0000] unknown flag: --platform
FATA[0000] exit status 1
Describe the bug
Markdown .md
files are going through e2e-tests
. It should be skipping according to this:
https://github.com/runfinch/finch/blob/main/.github/workflows/ci.yaml#L7
Steps to reproduce
Create PR with changes only in .md
files
Expected behavior
.md
files should be skipped during e2e tests in CI
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
.
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
finch vm init
command and log at the bottomfinch vm start
command and log at bottomScreenshots 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
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
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?
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:
finch version
after installation triggered by Github action in amd64 hosts with macOS version 10/11/12/13finch version
.finch version
for one time. Then run an Github action that only runs finch version
in arm64 hosts.Failed scenarioes (by same 137 error):
finch version
after installation triggered by Github action in arm64 hosts with macOS version 11/12/13 (arm64 is not supported with macOS version 10)permissions:contents:write-all
in yaml. Others are same as 1.finch version
for one time. Then run an Github action that re-installs and then runs finch version
in arm64 hosts.finch version
and after installation in yaml. Others are same as 1.finch version
in Github action. Others are same as 1.Some directions for further investigation:
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.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
-
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.
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.
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
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
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.
Describe the bug
Current aarch64 installer can't be installed by installer command in M1 macOS without Rosetta installed.
Steps to reproduce
/usr/bin/pgrep -q oahd && echo Yes || echo No
to validate Rosetta is not installed. "No" means it is not installed.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.
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.
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
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.
Describe the bug
run --pid-host
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
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
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 --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
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.
Describe the bug
Finch logo is blank in the GitHub App finch repository.
Steps to reproduce
Expected behavior
Finch icon is displayed.
Screenshots or logs
If applicable, add screenshots or logs to help explain your problem.
Additional context
Add any other context about the problem here.
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
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.
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
Describe the bug
When making a PR to edit/add docs, the status checks are still required, even though the workflow is skipped.
Steps to reproduce
Expected behavior
Describe the bug
Steps to reproduce
Expected behavior
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
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 additionalArchive
s 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.
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.
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
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.
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
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:
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).
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 ?
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
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
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 Fedora
as the guest OS on lima.
Add any other context about the problem here.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.