runfinch / finch

The Finch CLI is an open source client for container development
https://www.runfinch.com
Apache License 2.0
3.5k stars 91 forks source link

Finch could not be used as a docker replacement for Dev Containers in VSCode #387

Open normalerweise opened 1 year ago

normalerweise commented 1 year ago

Describe the bug Briefly describe the problem you are having.

Steps to reproduce Follow: https://code.visualstudio.com/docs/devcontainers/tutorial However after installing Dev Containers extension, go to the extensions settings and replace Docker and Docker Compose Path settings with the corresponding finch path (see screenshot)

Expected behavior Visual Studio Code Dev Containers successfully starts a dev container using finch

Screenshots or logs image

image

Additional context Finch seems to not support the --format parameter for the version command

To help debug the issue as quickly as possible, we recommend generating a support bundle with finch support-bundle-generate and attaching it to this issue. This packages all Finch-related configs and logs into one file.

ningziwen commented 1 year ago

The issue to track --format. https://github.com/runfinch/finch/issues/199

weikequ commented 1 year ago

Was able to do a patch to get past the version --format check, but getting some subsequent errors. Anyone have any idea?

[31 ms] Dev Containers 0.295.0 in VS Code 1.79.2 (695af097c7bd098fbf017ce3ac85e09bbc5dda06).
[30 ms] Start: Resolving Remote
[38 ms] Start: Check Docker is running
[39 ms] Start: Run: /Users/weikequ/weikequ/finch/_output/bin/finch version --format {{.Server.APIVersion}}
[202 ms] Stop (163 ms): Run: /Users/weikequ/weikequ/finch/_output/bin/finch version --format {{.Server.APIVersion}}
[202 ms] Server API version: Client:
 Version:       fef6e77.modified
 OS/Arch:       linux/arm64
 GitCommit:     fef6e772c28429ef14068702c1dfd8e9fec2dea1
 nerdctl:
  Version:      v1.4.0
  GitCommit:    7e8114a82da342cdbec9a518c5c6a1cce58105e9
 buildctl:
  Version:      v0.11.6
  GitCommit:    2951a28cd7085eb18979b1f710678623d94ed578

Server:
 containerd:
  Version:      v1.7.1
  GitCommit:    1677a17964311325ed1c31e2c0a3589ce6d5c30d
 runc:
  Version:      1.1.7
  GitCommit:    v1.1.7-0-g860f061b
[202 ms] Stop (164 ms): Check Docker is running
[204 ms] Start: Removing incomplete bootstrap-image folder.
[217 ms] Stop (13 ms): Removing incomplete bootstrap-image folder.
[240 ms] Start: Run: tar --no-same-owner -x -f -
[264 ms] Stop (24 ms): Run: tar --no-same-owner -x -f -
[265 ms] Start: Run: /Users/weikequ/weikequ/finch/_output/bin/finch build -f /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0/bootstrap.Dockerfile -t vsc-volume-bootstrap /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0
FATA[0000] lstat /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0/bootstrap.Dockerfile: no such file or directory 
FATA[0000] exit status 1                                
[703 ms] Stop (438 ms): Run: /Users/weikequ/weikequ/finch/_output/bin/finch build -f /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0/bootstrap.Dockerfile -t vsc-volume-bootstrap /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0
[705 ms] Command failed: /Users/weikequ/weikequ/finch/_output/bin/finch build -f /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0/bootstrap.Dockerfile -t vsc-volume-bootstrap /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.295.0
[705 ms] Exit code 1
estesp commented 1 year ago

Looks like it wants to use temp folders in /var/folders/nn...; I assume that path is not mounted in the VM?

weikequ commented 1 year ago

Since #525 is merged for better compatibility, we are unblocked for this previous issue. But upon further investigation, it seems like we may have hit a wall with it looking to mount the docker socket file to proceed.

[6 ms] Dev Containers 0.304.0 in VS Code 1.81.1 (6c3e3dba23e8fadc360aed75ce363ba185c49794).
[6 ms] Start: Resolving Remote
[12 ms] Start: Check Docker is running
[13 ms] Start: Run: /Users/weikequ/weikequ/finch/_output/bin/finch version --format {{.Server.APIVersion}}
[190 ms] Server API version: Client:
[truncated]
[192 ms] Start: Run: /Users/weikequ/weikequ/finch/_output/bin/finch build -f /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.304.0/bootstrap.Dockerfile -t vsc-volume-bootstrap /var/folders/68/9572bpy50fn85mdgf1y_8bl00000gr/T/vsch/bootstrap-image/0.304.0
[truncated]
[5292 ms] Start: Run: /Users/weikequ/weikequ/finch/_output/bin/finch run -d --mount type=volume,src=alpine-4,dst=/workspaces -v /var/run/docker.sock:/var/run/docker.sock vsc-volume-bootstrap sleep infinity
[5680 ms] Command failed: /Users/weikequ/weikequ/finch/_output/bin/finch run -d --mount type=volume,src=alpine-4,dst=/workspaces -v /var/run/docker.sock:/var/run/docker.sock vsc-volume-bootstrap sleep infinity
[5680 ms] time="2023-08-18T22:13:56Z" 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 mounting \"/var/run/docker.sock\" to rootfs at \"/var/run/docker.sock\": stat /var/run/docker.sock: no such file or directory: unknown"
time="2023-08-18T15:21:22-07:00" level=fatal msg="exit status 1"
[5680 ms] Exit code 1
weikequ commented 1 year ago

If I supply it a dummy docker.sock file, it proceeds to predictably fail a few lines later running a docker command.

[6992 ms] Start: Run in container: /bin/sh
[7571 ms] Start: Run in container: node /root/.vscode-remote-containers/dist/dev-containers-cli-0.304.0/dist/spec-node/devContainersSpecCLI.js read-configuration --workspace-folder /workspaces/alpine-4 --id-label vsc.devcontainer.volume.name=alpine-4 --id-label vsc.devcontainer.volume.folder=alpine-4 --log-level debug --log-format json --mount-workspace-git-root true --terminal-columns 200 --terminal-rows 25
[-438108 ms] @devcontainers/cli 0.50.0. Node.js v16.20.1. linux 6.3.12-200.fc38.aarch64 arm64.
[-438108 ms] Start: Run: git rev-parse --show-cdup
[-438103 ms] Start: Run: docker ps -q -a --filter label=vsc.devcontainer.volume.name=alpine-4 --filter label=vsc.devcontainer.volume.folder=alpine-4
[-438090 ms] Command failed: docker ps -q -a --filter label=vsc.devcontainer.volume.name=alpine-4 --filter label=vsc.devcontainer.volume.folder=alpine-4
[8056 ms] time="2023-08-18T22:18:41Z" level=fatal msg="exec failed with exit code 1"
[8059 ms] time="2023-08-18T15:26:07-07:00" level=fatal msg="exit status 1"
[8060 ms] Exit code 1
[8061 ms] Command failed: node /root/.vscode-remote-containers/dist/dev-containers-cli-0.304.0/dist/spec-node/devContainersSpecCLI.js read-configuration --workspace-folder /workspaces/alpine-4 --id-label vsc.devcontainer.volume.name=alpine-4 --id-label vsc.devcontainer.volume.folder=alpine-4 --log-level debug --log-format json --mount-workspace-git-root true --terminal-columns 200 --terminal-rows 25
[8061 ms] Exit code 1