mirror of
https://github.com/lima-vm/lima.git
synced 2026-10-28 11:44:35 +08:00
lint: add editorconfig-checker for whitespace and newline checks
Add a root .editorconfig enforcing trim_trailing_whitespace and insert_final_newline, with editorconfig-checker to verify compliance. Fix all existing violations and update autostart tests to match the corrected template files. Fixes #4581 Signed-off-by: Jan Dubois <jan.dubois@suse.com>
This commit is contained in:
1 parent
86ce87b08f
commit
788a2f3010
62 files changed
+166
-123
No files matched your search
@@ -0,0 +1,10 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
# Protobuf descriptors are binary files
|
||||
[*.pb.desc]
|
||||
insert_final_newline = unset
|
||||
trim_trailing_whitespace = unset
|
||||
@@ -37,6 +37,8 @@ jobs:
|
||||
make install-protoc-tools
|
||||
- name: Verify generated files
|
||||
run: make generate check-generated
|
||||
- name: Run editorconfig-checker
|
||||
run: go tool -modfile=./hack/tools/go.mod editorconfig-checker
|
||||
- name: Run yamllint
|
||||
run: yamllint .
|
||||
- name: Install shellcheck
|
||||
|
||||
@@ -576,6 +576,7 @@ bats: native limactl-plugins
|
||||
|
||||
.PHONY: lint
|
||||
lint: check-generated
|
||||
editorconfig-checker
|
||||
golangci-lint run ./...
|
||||
yamllint .
|
||||
ls-lint
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
The extra tests located in this directory are not automatically executed via `make bats`.
|
||||
|
||||
Some tests are executed on the CI, some ones are not.
|
||||
Refer to the configuration of the GitHub Actions to see what tests are executed.
|
||||
Refer to the configuration of the GitHub Actions to see what tests are executed.
|
||||
@@ -306,7 +306,7 @@ tools_call() {
|
||||
}
|
||||
|
||||
@test 'glob returns an empty list when the pattern does not match' {
|
||||
|
||||
|
||||
tools_call glob '{"pattern":"nothing.to.see"}'
|
||||
|
||||
run_yq '.structuredContent.matches[]' <<<"$output"
|
||||
|
||||
@@ -31,4 +31,4 @@ local_teardown_file() {
|
||||
|
||||
run limactl shell "$NAME" -- ls -ld /home/"${USER}.linux/.ssh"
|
||||
assert_success
|
||||
}
|
||||
}
|
||||
@@ -123,12 +123,12 @@ local_setup() {
|
||||
export BARBAZ=barbaz
|
||||
export LD_UID=randomuid
|
||||
run -0 limactl shell --preserve-env "$NAME" printenv
|
||||
|
||||
|
||||
assert_line SSH_FOO=ssh_foo
|
||||
assert_line BAR=bar
|
||||
assert_line BARBAZ=barbaz
|
||||
assert_line LD_UID=randomuid
|
||||
|
||||
|
||||
refute_line --regexp '^SSH_BAR='
|
||||
refute_line --regexp '^SSH_BLOCK='
|
||||
}
|
||||
@@ -145,11 +145,11 @@ local_setup() {
|
||||
export NORMAL_VAR=normal_var
|
||||
export UNRELATED=unrelated
|
||||
run -0 limactl shell --preserve-env "$NAME" printenv
|
||||
|
||||
|
||||
refute_line --regexp '^FOOBAR='
|
||||
refute_line --regexp '^FOOXYZBAR='
|
||||
refute_line --regexp '^FOOXYZBAR='
|
||||
refute_line --regexp '^XFOOYBARZDOTCOM='
|
||||
|
||||
|
||||
assert_line FOOBAZ=foobaz
|
||||
assert_line NORMAL_VAR=normal_var
|
||||
assert_line UNRELATED=unrelated
|
||||
@@ -167,7 +167,7 @@ local_setup() {
|
||||
export MY_TOKEN=my_token
|
||||
export UNRELATED=unrelated
|
||||
run -0 limactl shell --preserve-env "$NAME" printenv
|
||||
|
||||
|
||||
assert_line SSH_AUTH_SOCK=ssh_auth_sock
|
||||
assert_line SSH_CONNECTION=ssh_connection
|
||||
assert_line CUSTOM_VAR=custom_var
|
||||
|
||||
@@ -40,7 +40,7 @@ setup() {
|
||||
mkdir -p "$TEST_SYNC_DIR"
|
||||
touch "$TEST_SYNC_DIR/foo.txt"
|
||||
touch "$TEST_SYNC_DIR/bar.txt"
|
||||
|
||||
|
||||
# Create a simple script that makes changes to these files
|
||||
cat > "$TEST_SYNC_DIR/modify.sh" << 'EOF'
|
||||
#!/bin/sh
|
||||
@@ -60,13 +60,13 @@ teardown() {
|
||||
|
||||
@test 'shell --sync preserves working directory path from host to guest' {
|
||||
cd "$TEST_SYNC_DIR"
|
||||
|
||||
|
||||
# Get path of the TEST_SYNC_DIR for verification
|
||||
local path_test_dir
|
||||
path_test_dir="$PWD"
|
||||
|
||||
|
||||
run -0 bash -c "limactl shell --sync . --yes '$NAME' pwd && ./modify.sh"
|
||||
|
||||
|
||||
# Verify the guest working directory matches the host path structure
|
||||
assert_output --regexp ".*${path_test_dir#/}"
|
||||
|
||||
@@ -83,13 +83,13 @@ teardown() {
|
||||
mkdir -p "$special_dir"
|
||||
mv "$TEST_SYNC_DIR" "$special_dir"
|
||||
cd "$special_dir/sync-test"
|
||||
|
||||
|
||||
# Count files before sync
|
||||
local files_before
|
||||
files_before=$(find . -type f | wc -l)
|
||||
|
||||
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./modify.sh"
|
||||
|
||||
|
||||
# Verify files were modified
|
||||
run cat "$special_dir/sync-test/foo.txt"
|
||||
assert_output "modified foo"
|
||||
@@ -100,22 +100,22 @@ teardown() {
|
||||
local files_after
|
||||
files_after=$(find "$special_dir/sync-test" -type f | wc -l)
|
||||
[[ $files_after -eq $files_before ]]
|
||||
|
||||
|
||||
# Cleanup
|
||||
rm -rf "$special_dir"
|
||||
}
|
||||
|
||||
@test 'shell --sync reflects file deletion from guest to host' {
|
||||
cd "$TEST_SYNC_DIR"
|
||||
|
||||
|
||||
run -0 bash -c "limactl shell --sync . --yes '$NAME' rm -f foo.txt"
|
||||
|
||||
assert_file_not_exists "$TEST_SYNC_DIR/foo.txt"
|
||||
|
||||
assert_file_not_exists "$TEST_SYNC_DIR/foo.txt"
|
||||
}
|
||||
|
||||
@test 'shell --sync reflects new directory and file creation from guest to host' {
|
||||
cd "$TEST_SYNC_DIR"
|
||||
|
||||
|
||||
# Create a script that creates a new directory with a file
|
||||
cat > "$TEST_SYNC_DIR/create_new.sh" << 'EOF'
|
||||
#!/bin/sh
|
||||
@@ -124,13 +124,13 @@ mkdir -p new_directory
|
||||
echo "foo bar baz" > new_directory/new_file.txt
|
||||
EOF
|
||||
chmod +x "$TEST_SYNC_DIR/create_new.sh"
|
||||
|
||||
|
||||
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./create_new.sh && ./modify.sh"
|
||||
|
||||
|
||||
# Verify new directory was created on host
|
||||
assert_dir_exists "$TEST_SYNC_DIR/new_directory"
|
||||
assert_file_exists "$TEST_SYNC_DIR/new_directory/new_file.txt"
|
||||
|
||||
|
||||
# Verify file content
|
||||
run cat "$TEST_SYNC_DIR/new_directory/new_file.txt"
|
||||
assert_output "foo bar baz"
|
||||
@@ -142,14 +142,14 @@ EOF
|
||||
|
||||
@test 'shell --sync preserves file permissions' {
|
||||
cd "$TEST_SYNC_DIR"
|
||||
|
||||
|
||||
# Create a file with specific permissions
|
||||
touch "$TEST_SYNC_DIR/executable.sh"
|
||||
chmod 755 "$TEST_SYNC_DIR/executable.sh"
|
||||
|
||||
|
||||
# Modify the file in guest
|
||||
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./modify.sh"
|
||||
|
||||
|
||||
# Verify file is still executable on host
|
||||
if [[ "$OSTYPE" == darwin* ]]; then
|
||||
run stat -f '%A' "$TEST_SYNC_DIR/executable.sh"
|
||||
@@ -167,18 +167,18 @@ EOF
|
||||
|
||||
@test 'shell --sync works without existing ControlMaster socket' {
|
||||
cd "$TEST_SYNC_DIR"
|
||||
|
||||
|
||||
# Remove the ControlMaster socket
|
||||
local sock_path="$LIMA_HOME/$NAME/ssh.sock"
|
||||
if [[ -S "$sock_path" ]]; then
|
||||
rm "$sock_path"
|
||||
fi
|
||||
|
||||
|
||||
run -0 bash -c "limactl shell --sync . --yes '$NAME' ./modify.sh"
|
||||
|
||||
|
||||
# Verify files were modified
|
||||
run cat "$TEST_SYNC_DIR/foo.txt"
|
||||
assert_output "modified foo"
|
||||
run cat "$TEST_SYNC_DIR/bar.txt"
|
||||
assert_output "modified bar"
|
||||
}
|
||||
}
|
||||
@@ -123,7 +123,7 @@ while (<DATA>) {
|
||||
/^(forward|ignore):\s+([0-9.:]+)\s+(\d+)(?:\s+→)?(?:\s+(?:([0-9.:]+)(?:\s+(\d+))|(\S+))?)?/;
|
||||
die "Cannot parse test '$_'" unless $1;
|
||||
my %test; @test{qw(mode guest_ip guest_port host_ip host_port host_socket)} = ($1, $2, $3, $4, $5, $6);
|
||||
|
||||
|
||||
$test{host_ip} ||= "127.0.0.1";
|
||||
$test{host_port} ||= $test{guest_port};
|
||||
$test{host_socket} ||= "";
|
||||
@@ -300,7 +300,7 @@ if (%failed_to_listen_tcp) {
|
||||
foreach (keys %failed_to_listen_tcp) {
|
||||
print "⚠️ $failed_to_listen_tcp{$_}\n";
|
||||
}
|
||||
my @tcp_list = keys %failed_to_listen_tcp;
|
||||
my @tcp_list = keys %failed_to_listen_tcp;
|
||||
if ($Config{osname} eq "darwin") {
|
||||
my @lsof_args = map { "-iTCP\@$_" } @tcp_list;
|
||||
print `lsof -P @lsof_args`;
|
||||
|
||||
@@ -5,6 +5,7 @@ go 1.25.0
|
||||
// Should be in sync with pinversion.go
|
||||
tool (
|
||||
github.com/containerd/ltag
|
||||
github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker
|
||||
github.com/golangci/golangci-lint/v2/cmd/golangci-lint
|
||||
github.com/yoheimuta/protolint/cmd/protolint
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc
|
||||
@@ -76,12 +77,15 @@ require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/denis-tingaikin/go-header v0.5.0 // indirect
|
||||
github.com/dlclark/regexp2 v1.11.5 // indirect
|
||||
github.com/editorconfig-checker/editorconfig-checker/v3 v3.6.1 // indirect
|
||||
github.com/editorconfig/editorconfig-core-go/v2 v2.6.4 // indirect
|
||||
github.com/ettle/strcase v0.2.0 // indirect
|
||||
github.com/fatih/color v1.18.0 // indirect
|
||||
github.com/fatih/structtag v1.2.0 // indirect
|
||||
github.com/firefart/nonamedreturns v1.0.6 // indirect
|
||||
github.com/fsnotify/fsnotify v1.5.4 // indirect
|
||||
github.com/fzipp/gocyclo v0.6.0 // indirect
|
||||
github.com/gabriel-vasile/mimetype v1.4.12 // indirect
|
||||
github.com/gertd/go-pluralize v0.2.1 // indirect
|
||||
github.com/ghostiam/protogetter v0.3.20 // indirect
|
||||
github.com/go-critic/go-critic v0.14.3 // indirect
|
||||
@@ -209,6 +213,7 @@ require (
|
||||
github.com/ultraware/whitespace v0.2.0 // indirect
|
||||
github.com/uudashr/gocognit v1.2.0 // indirect
|
||||
github.com/uudashr/iface v1.4.1 // indirect
|
||||
github.com/wlynxg/chardet v1.0.4 // indirect
|
||||
github.com/xen0n/gosmopolitan v1.3.0 // indirect
|
||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
|
||||
github.com/yagipy/maintidx v1.0.0 // indirect
|
||||
|
||||
+26
-2
@@ -168,6 +168,10 @@ github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42
|
||||
github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY=
|
||||
github.com/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ=
|
||||
github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
|
||||
github.com/editorconfig-checker/editorconfig-checker/v3 v3.6.1 h1:jdfYul8o1YpAb0tjNBcfJsVFwTn1s4qis4ec5Feuhhs=
|
||||
github.com/editorconfig-checker/editorconfig-checker/v3 v3.6.1/go.mod h1:3M/pJVyyr63yWjRWOFpPqKNAzj6JaE/I/+dNDfgN+3I=
|
||||
github.com/editorconfig/editorconfig-core-go/v2 v2.6.4 h1:CHwUbBVVyKWRX9kt5A/OtwhYUJB32DrFp9xzmjR6cac=
|
||||
github.com/editorconfig/editorconfig-core-go/v2 v2.6.4/go.mod h1:JWRVKHdVW+dkv6F8p+xGCa6a+TyMrqsFbFkSs/aQkrQ=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
@@ -187,10 +191,16 @@ github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwV
|
||||
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
|
||||
github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=
|
||||
github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA=
|
||||
github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw=
|
||||
github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s=
|
||||
github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA=
|
||||
github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk=
|
||||
github.com/ghostiam/protogetter v0.3.20 h1:oW7OPFit2FxZOpmMRPP9FffU4uUpfeE/rEdE1f+MzD0=
|
||||
github.com/ghostiam/protogetter v0.3.20/go.mod h1:FjIu5Yfs6FT391m+Fjp3fbAYJ6rkL/J6ySpZBfnODuI=
|
||||
github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs=
|
||||
github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo=
|
||||
github.com/gkampitakis/go-snaps v0.5.19 h1:hUJlCQOpTt1M+kSisMwioDWZDWpDtdAvUhvWCx1YGW0=
|
||||
github.com/gkampitakis/go-snaps v0.5.19/go.mod h1:gC3YqxQTPyIXvQrw/Vpt3a8VqR1MO8sVpZFWN4DGwNs=
|
||||
github.com/go-critic/go-critic v0.14.3 h1:5R1qH2iFeo4I/RJU8vTezdqs08Egi4u5p6vOESA0pog=
|
||||
github.com/go-critic/go-critic v0.14.3/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ=
|
||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
@@ -236,6 +246,8 @@ github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUW
|
||||
github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
|
||||
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
|
||||
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
|
||||
github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
|
||||
github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
|
||||
github.com/godoc-lint/godoc-lint v0.11.2 h1:Bp0FkJWoSdNsBikdNgIcgtaoo+xz6I/Y9s5WSBQUeeM=
|
||||
github.com/godoc-lint/godoc-lint v0.11.2/go.mod h1:iVpGdL1JCikNH2gGeAn3Hh+AgN5Gx/I/cxV+91L41jo=
|
||||
github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw=
|
||||
@@ -434,6 +446,8 @@ github.com/maratori/testableexamples v1.0.1 h1:HfOQXs+XgfeRBJ+Wz0XfH+FHnoY9TVqL6
|
||||
github.com/maratori/testableexamples v1.0.1/go.mod h1:XE2F/nQs7B9N08JgyRmdGjYVGqxWwClLPCGSQhXQSrQ=
|
||||
github.com/maratori/testpackage v1.1.2 h1:ffDSh+AgqluCLMXhM19f/cpvQAKygKAJXFl9aUjmbqs=
|
||||
github.com/maratori/testpackage v1.1.2/go.mod h1:8F24GdVDFW5Ew43Et02jamrVMNXLUNaOynhDssITGfc=
|
||||
github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo=
|
||||
github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg=
|
||||
github.com/matoous/godox v1.1.0 h1:W5mqwbyWrwZv6OQ5Z1a/DHGMOvXYCBP3+Ht7KMoJhq4=
|
||||
github.com/matoous/godox v1.1.0/go.mod h1:jgE/3fUXiTurkdHOLT5WEkThTSuE7yxHv5iWPa80afs=
|
||||
github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
|
||||
@@ -552,8 +566,8 @@ github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iM
|
||||
github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8=
|
||||
github.com/securego/gosec/v2 v2.23.0 h1:h4TtF64qFzvnkqvsHC/knT7YC5fqyOCItlVR8+ptEBo=
|
||||
github.com/securego/gosec/v2 v2.23.0/go.mod h1:qRHEgXLFuYUDkI2T7W7NJAmOkxVhkR0x9xyHOIcMNZ0=
|
||||
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
|
||||
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
|
||||
github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
|
||||
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
|
||||
github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=
|
||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||
@@ -608,6 +622,14 @@ github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpR
|
||||
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
|
||||
github.com/tetafro/godot v1.5.4 h1:u1ww+gqpRLiIA16yF2PV1CV1n/X3zhyezbNXC3E14Sg=
|
||||
github.com/tetafro/godot v1.5.4/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU=
|
||||
github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
|
||||
github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
|
||||
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
|
||||
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
|
||||
github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
|
||||
github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
|
||||
github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
|
||||
github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
|
||||
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk=
|
||||
github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460=
|
||||
github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M=
|
||||
@@ -624,6 +646,8 @@ github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYR
|
||||
github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU=
|
||||
github.com/uudashr/iface v1.4.1 h1:J16Xl1wyNX9ofhpHmQ9h9gk5rnv2A6lX/2+APLTo0zU=
|
||||
github.com/uudashr/iface v1.4.1/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg=
|
||||
github.com/wlynxg/chardet v1.0.4 h1:hkI71Dx8v3RiAz3XKV5lJEh9QfKo7xXKUmYJQeIMlpo=
|
||||
github.com/wlynxg/chardet v1.0.4/go.mod h1:HLQMNsa0w4MkH2e7waQaFD+Yh85riFFTLhFtP8fsdbQ=
|
||||
github.com/xen0n/gosmopolitan v1.3.0 h1:zAZI1zefvo7gcpbCOrPSHJZJYA9ZgLfJqtKzZ5pHqQM=
|
||||
github.com/xen0n/gosmopolitan v1.3.0/go.mod h1:rckfr5T6o4lBtM1ga7mLGKZmLxswUoH1zxHgNXOsEt4=
|
||||
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=
|
||||
|
||||
@@ -32,7 +32,7 @@ Description:
|
||||
|
||||
https://kitten.repo.almalinux.org/<major version>-kitten/cloud/<arch>/images/
|
||||
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
The downloaded files will be cached in the Lima cache directory.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -32,7 +32,7 @@ Description:
|
||||
|
||||
https://repo.almalinux.org/almalinux/<major version>/cloud/<arch>/images/
|
||||
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
The downloaded files will be cached in the Lima cache directory.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -30,7 +30,7 @@ Description:
|
||||
latest-stable: https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases/cloud
|
||||
<major>.<minor>: https://dl-cdn.alpinelinux.org/alpine/v<major>.<minor>/releases/cloud
|
||||
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
The downloaded files will be cached in the Lima cache directory.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -30,10 +30,10 @@ Description:
|
||||
x86_64:
|
||||
listing: https://gitlab.archlinux.org/api/v4/projects/archlinux%2Farch-boxes/packages
|
||||
details: https://gitlab.archlinux.org/api/v4/projects/archlinux%2Farch-boxes/packages/:package_id/package_files
|
||||
|
||||
|
||||
aarch64:
|
||||
https://github.com/mcginty/arch-boxes-arm/releases/
|
||||
|
||||
|
||||
Using 'gh' CLI tool for fetching the latest release from GitHub.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -29,7 +29,7 @@ Description:
|
||||
|
||||
https://cloud.centos.org/centos/<major version>-stream/<arch>/images/
|
||||
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
The downloaded files will be cached in the Lima cache directory.
|
||||
|
||||
Examples:
|
||||
@@ -104,7 +104,7 @@ function centos_latest_image_entry_for_url_spec() {
|
||||
fi
|
||||
latest_info=$(jq -e -Rrs --argjson spec "${url_spec}" '
|
||||
[
|
||||
split("\n").[] |
|
||||
split("\n").[] |
|
||||
capture(
|
||||
"^CentOS-Stream-\($spec.target_vendor)-\($spec.version)-(?<date_and_ci_job_id>\\d{8}\\.\\d+)\\.\($spec.arch)\\.\($spec.file_extension)$"
|
||||
;"x"
|
||||
|
||||
@@ -31,7 +31,7 @@ Description:
|
||||
<major>.<minor>: https://download.opensuse.org/distribution/leap/<major>.<minor>/appliances/?jsontable
|
||||
current: https://download.opensuse.org/distribution/openSUSE-current/appliances/?jsontable
|
||||
stable: https://download.opensuse.org/distribution/openSUSE-stable/appliances/?jsontable
|
||||
|
||||
|
||||
Tumbleweed:
|
||||
x86_64: https://download.opensuse.org/tumbleweed/appliances/?jsontable
|
||||
not x86_64: https://download.opensuse.org/ports/<arch>/tumbleweed/appliances/?jsontable
|
||||
@@ -51,7 +51,7 @@ Examples:
|
||||
$ limactl factory-reset opensuse
|
||||
|
||||
Flags:
|
||||
--version-major-minor (<major>.<minor>|current|stable|tumbleweed) Use the specified <major>.<minor> version or
|
||||
--version-major-minor (<major>.<minor>|current|stable|tumbleweed) Use the specified <major>.<minor> version or
|
||||
aliases "current", "stable", or "tumbleweed".
|
||||
The <major>.<minor> version must be 15.0 or later.
|
||||
--version-major <major> --version-minor <minor> Use the specified <major> and <minor> version.
|
||||
@@ -72,7 +72,7 @@ function opensuse_url_spec_from_location() {
|
||||
)/appliances/
|
||||
openSUSE-(?<version>Leap-\\d+\\.\\d+|Tumbleweed)-Minimal-VM
|
||||
\\.(?<arch>[^-]+)(?<major_minor_patch>-\\d+\\.\\d+\\.\\d+)?-(?<target_vendor>.*)(?<build_info>-Build\\d+\\.\\d+)?\\.(?<file_extension>.*)$
|
||||
";"x") |
|
||||
";"x") |
|
||||
.path_version = (.path_version_leap // .path_version_leap_alias // .path_version_tumbleweed)
|
||||
'
|
||||
url_spec=$(jq -e -r "${jq_filter}" <<<"\"${location}\"")
|
||||
|
||||
@@ -30,7 +30,7 @@ Description:
|
||||
OL8:
|
||||
x86_64: https://yum.oracle.com/templates/OracleLinux/ol8-template.json
|
||||
aarch64: https://yum.oracle.com/templates/OracleLinux/ol8_aarch64-cloud-template.json
|
||||
|
||||
|
||||
OL9:
|
||||
x86_64: https://yum.oracle.com/templates/OracleLinux/ol9-template.json
|
||||
aarch64: https://yum.oracle.com/templates/OracleLinux/ol9_aarch64-cloud-template.json
|
||||
|
||||
@@ -32,7 +32,7 @@ Description:
|
||||
|
||||
https://dl.rockylinux.org/pub/rocky/<major version>/images/<arch>/
|
||||
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
To parsing html, this script requires 'htmlq' or 'pup' command.
|
||||
The downloaded files will be cached in the Lima cache directory.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -133,7 +133,7 @@ function ubuntu_image_url_release() {
|
||||
jq_filter="
|
||||
[
|
||||
.products | to_entries[] as \$product_entry |
|
||||
\$product_entry.value| select(.version == \"${version}\") |
|
||||
\$product_entry.value| select(.version == \"${version}\") |
|
||||
.release
|
||||
] | first
|
||||
"
|
||||
|
||||
@@ -72,7 +72,8 @@ func TestRenderTemplate(t *testing.T) {
|
||||
<key>ProcessType</key>
|
||||
<string>Background</string>
|
||||
</dict>
|
||||
</plist>`,
|
||||
</plist>
|
||||
`,
|
||||
GetExecutable: func() (string, error) {
|
||||
return "/limactl", nil
|
||||
},
|
||||
@@ -94,7 +95,8 @@ TimeoutSec=10
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target`,
|
||||
WantedBy=default.target
|
||||
`,
|
||||
GetExecutable: func() (string, error) {
|
||||
return "/limactl", nil
|
||||
},
|
||||
|
||||
@@ -22,4 +22,4 @@
|
||||
<key>ProcessType</key>
|
||||
<string>Background</string>
|
||||
</dict>
|
||||
</plist>
|
||||
</plist>
|
||||
@@ -10,4 +10,4 @@ TimeoutSec=10
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
WantedBy=default.target
|
||||
@@ -15,7 +15,7 @@ if [ "${LIMA_CIDATA_NAME}" = "default" ] && command -v patch >/dev/null 2>&1 &&
|
||||
|
||||
patch --forward -r - "${LIMA_CIDATA_HOME}/.bashrc" <<'EOF'
|
||||
@@ -37,7 +37,11 @@
|
||||
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
- xterm-color|*-256color) color_prompt=yes;;
|
||||
@@ -25,12 +25,12 @@ if [ "${LIMA_CIDATA_NAME}" = "default" ] && command -v patch >/dev/null 2>&1 &&
|
||||
+case "$COLORTERM" in
|
||||
+ truecolor) color_prompt=true;;
|
||||
esac
|
||||
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
@@ -56,7 +60,12 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
-if [ "$color_prompt" = yes ]; then
|
||||
+# Lima PS1: set color to lime green
|
||||
+if [ "$color_prompt" = true ]; then
|
||||
|
||||
Vendored
+3
-3
@@ -47,9 +47,9 @@ message InfoResponse{
|
||||
}
|
||||
|
||||
// StartResponse is a streamed response for Start() RPC. It tries to mimic
|
||||
// errChan from pkg/driver/driver.go. The server sends an initial response
|
||||
// with success=true when Start() is initiated. If errors occur, they are
|
||||
// sent as success=false with the error field populated. When the error channel
|
||||
// errChan from pkg/driver/driver.go. The server sends an initial response
|
||||
// with success=true when Start() is initiated. If errors occur, they are
|
||||
// sent as success=false with the error field populated. When the error channel
|
||||
// closes, a final success=true message is sent.
|
||||
message StartResponse {
|
||||
bool success = 1;
|
||||
|
||||
@@ -166,9 +166,8 @@ vmOpts:
|
||||
rosetta:
|
||||
binfmt: false
|
||||
enabled: true
|
||||
message: |
|
||||
|
||||
Rosetta is enabled in this VM, so you can run x86_64 containers on Apple Silicon.
|
||||
message: |` + "\n \n" + // goccy/go-yaml indents blank lines in block scalars
|
||||
` Rosetta is enabled in this VM, so you can run x86_64 containers on Apple Silicon.
|
||||
`
|
||||
var y limatype.LimaYAML
|
||||
err := Unmarshal([]byte(text), &y, "lima.yaml")
|
||||
|
||||
+1
-1
@@ -9,4 +9,4 @@
|
||||
<key>com.apple.security.virtualization</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
</plist>
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
# The source of the Lima website (https://lima-vm.io)
|
||||
|
||||
This directory is the [Netlify base directory](https://docs.netlify.com/configure-builds/overview/) of [https://lima-vm.io](https://lima-vm.io/) .
|
||||
This directory is the [Netlify base directory](https://docs.netlify.com/configure-builds/overview/) of [https://lima-vm.io](https://lima-vm.io/) .
|
||||
@@ -51,4 +51,4 @@ $td-sidebar-tree-root-color: #222 !default;
|
||||
|
||||
.td-search__icon {
|
||||
color: $secondary !important;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: "Lima: Linux Machines"
|
||||
title: "Lima: Linux Machines"
|
||||
linkTitle: Documentation
|
||||
menu: {main: {weight: 20}}
|
||||
weight: 20
|
||||
|
||||
@@ -8,4 +8,4 @@ There are two kinds of scenario to use Lima with AI:
|
||||
- [AI agents inside Lima](./inside): running an AI agent **inside** a VM
|
||||
- [AI agents outside Lima](./outside): calling Lima's MCP tools from an AI agent running **outside** a VM
|
||||
|
||||
<!-- TODO: add a comparison table -->
|
||||
<!-- TODO: add a comparison table -->
|
||||
@@ -4,4 +4,4 @@ weight: 10
|
||||
---
|
||||
|
||||
Starting with Lima v2.0, Lima provides Model Context Protocol (MCP) tools
|
||||
for reading, writing, and executing local files using a VM sandbox.
|
||||
for reading, writing, and executing local files using a VM sandbox.
|
||||
@@ -6,7 +6,7 @@ This guide explains how to increase the disk size of a Lima VM when you've run o
|
||||
|
||||
## Resize Disk Using limactl
|
||||
|
||||
Starting with v1.1, Lima supports editing the disk size of an existing instance using the `--disk` flag with the `limactl edit` command.
|
||||
Starting with v1.1, Lima supports editing the disk size of an existing instance using the `--disk` flag with the `limactl edit` command.
|
||||
This is the recommended and simplest way to resize your VM disk.
|
||||
|
||||
```sh
|
||||
@@ -19,6 +19,6 @@ Example for 20GB:
|
||||
limactl edit default --disk 20
|
||||
```
|
||||
|
||||
> **Note:**
|
||||
> **Note:**
|
||||
> - Increasing disk size is supported, but shrinking disks is not recommended.
|
||||
> - The instance may need to be stopped before editing disk size.
|
||||
@@ -21,7 +21,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Specifies the name of the Lima instance to use.
|
||||
- **Default**: `default`
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMA_INSTANCE=my-instance
|
||||
lima uname -a
|
||||
@@ -31,7 +31,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Specifies the shell interpreter to use inside the Lima instance.
|
||||
- **Default**: User's shell configured inside the instance
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMA_SHELL=/bin/bash
|
||||
lima
|
||||
@@ -51,7 +51,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Specifies the initial working directory inside the Lima instance.
|
||||
- **Default**: Current directory from the host
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMA_WORKDIR=/home/user/project
|
||||
lima
|
||||
@@ -83,13 +83,13 @@ This page documents the environment variables used in Lima.
|
||||
- SSH/security: `SSH_*`
|
||||
- Dynamic linker: `DYLD_*`, `LD_*`
|
||||
- Internal variables: `_*` (variables starting with underscore)
|
||||
|
||||
|
||||
See [`GetDefaultBlockList()`](https://github.com/lima-vm/lima/blob/master/pkg/envutil/envutil.go#L133) for the complete list.
|
||||
- **Usage**:
|
||||
```sh
|
||||
# Replace default block list entirely (not recommended)
|
||||
export LIMA_SHELLENV_BLOCK="SECRET_*,PRIVATE_*"
|
||||
|
||||
|
||||
# Extend default block list (recommended)
|
||||
export LIMA_SHELLENV_BLOCK="+SECRET_*,PRIVATE_*"
|
||||
limactl shell --preserve-env default
|
||||
@@ -100,7 +100,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Specifies the path to the `limactl` binary.
|
||||
- **Default**: `limactl` in `$PATH`
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMACTL=/usr/local/bin/limactl
|
||||
lima
|
||||
@@ -109,7 +109,7 @@ This page documents the environment variables used in Lima.
|
||||
### `LIMA_SSH_OVER_VSOCK`
|
||||
- **Description**: Specifies to use vsock for SSH connection instead of port forwarding.
|
||||
- **Default**: `true` (since v2.0.0)
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMA_SSH_OVER_VSOCK=true
|
||||
```
|
||||
@@ -120,7 +120,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Specifies to use the SSH port forwarder (slow) instead of gRPC (fast, previously unstable)
|
||||
- **Default**: `false` (since v1.1.0)
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMA_SSH_PORT_FORWARDER=false
|
||||
```
|
||||
@@ -136,7 +136,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Specifies the timeout duration for resolving the IP address in usernet.
|
||||
- **Default**: 2 minutes
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export LIMA_USERNET_RESOLVE_IP_ADDRESS_TIMEOUT=5
|
||||
```
|
||||
@@ -145,7 +145,7 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
- **Description**: Commands QEMU to load x86_64 UEFI images using `-bios` instead of `pflash` drives.
|
||||
- **Default**: `false` on Unix like hosts and `true` on Windows hosts
|
||||
- **Usage**:
|
||||
- **Usage**:
|
||||
```sh
|
||||
export _LIMA_QEMU_UEFI_IN_BIOS=true
|
||||
```
|
||||
@@ -186,8 +186,8 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
### `QEMU_SYSTEM_PPC64`
|
||||
|
||||
- **Description**: Path to the `qemu-system-ppc64` binary.
|
||||
- **Default**: `qemu-system-ppc64` found in `$PATH`
|
||||
- **Description**: Path to the `qemu-system-ppc64` binary.
|
||||
- **Default**: `qemu-system-ppc64` found in `$PATH`
|
||||
- **Usage**:
|
||||
```sh
|
||||
export QEMU_SYSTEM_PPC64=/usr/local/bin/qemu-system-ppc64
|
||||
@@ -195,8 +195,8 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
### `QEMU_SYSTEM_RISCV64`
|
||||
|
||||
- **Description**: Path to the `qemu-system-riscv64` binary.
|
||||
- **Default**: `qemu-system-riscv64` found in `$PATH`
|
||||
- **Description**: Path to the `qemu-system-riscv64` binary.
|
||||
- **Default**: `qemu-system-riscv64` found in `$PATH`
|
||||
- **Usage**:
|
||||
```sh
|
||||
export QEMU_SYSTEM_RISCV64=/usr/local/bin/qemu-system-riscv64
|
||||
@@ -204,8 +204,8 @@ This page documents the environment variables used in Lima.
|
||||
|
||||
### `QEMU_SYSTEM_S390X`
|
||||
|
||||
- **Description**: Path to the `qemu-system-s390x` binary.
|
||||
- **Default**: `qemu-system-s390x` found in `$PATH`
|
||||
- **Description**: Path to the `qemu-system-s390x` binary.
|
||||
- **Default**: `qemu-system-s390x` found in `$PATH`
|
||||
- **Usage**:
|
||||
```sh
|
||||
export QEMU_SYSTEM_S390X=/usr/local/bin/qemu-system-s390x
|
||||
|
||||
@@ -11,4 +11,4 @@ Lima VM supports GPU acceleration for the following VM types:
|
||||
|
||||
The Lima VM project is unrelated to [the Lima driver project (driver for ARM Mali GPUs)](https://gitlab.freedesktop.org/lima),
|
||||
which appears as "Lima" in the documentations of [Mesa 3D](https://docs.mesa3d.org/drivers/lima.html), etc.
|
||||
{{% /alert %}}
|
||||
{{% /alert %}}
|
||||
@@ -173,9 +173,9 @@ mountType: "wsl2"
|
||||
|
||||
The `mountInotify` support enables inotify support for all different mountTypes like 9p, virtiofs etc.
|
||||
|
||||
When mountInotify is enabled,
|
||||
- hostagent will listen and send inotify events from host machine to guest.
|
||||
- Guest will modify the file to trigger inotify on guest side
|
||||
When mountInotify is enabled,
|
||||
- hostagent will listen and send inotify events from host machine to guest.
|
||||
- Guest will modify the file to trigger inotify on guest side
|
||||
|
||||
This support will be enabled only for writable mounts because only for writable mount guest will be able to trigger inotify
|
||||
|
||||
|
||||
@@ -109,19 +109,19 @@ rosetta:
|
||||
| ⚡ Requirement | Lima >= 2.0, macOS >= 14.0, ARM |
|
||||
|-------------------|----------------------------------|
|
||||
|
||||
Rosetta AOT Caching speeds up containers by saving translated binaries, so they don't need to be translated again.
|
||||
Rosetta AOT Caching speeds up containers by saving translated binaries, so they don't need to be translated again.
|
||||
Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10007/?time=721)
|
||||
|
||||
**How to use Rosetta AOT Caching:**
|
||||
|
||||
- **Run a container:**
|
||||
- **Run a container:**
|
||||
Add `--device=lima-vm.io/rosetta=cached` to your `docker run` command:
|
||||
```bash
|
||||
docker run --platform=linux/amd64 --device=lima-vm.io/rosetta=cached ...
|
||||
```
|
||||
|
||||
- **Build an image:**
|
||||
Add `# syntax=docker/dockerfile:1-labs` at the top of your Dockerfile to enable the `--device` option.
|
||||
- **Build an image:**
|
||||
Add `# syntax=docker/dockerfile:1-labs` at the top of your Dockerfile to enable the `--device` option.
|
||||
Use `--device=lima-vm.io/rosetta=cached` in your `RUN` command:
|
||||
```Dockerfile
|
||||
# syntax=docker/dockerfile:1-labs
|
||||
@@ -130,7 +130,7 @@ Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10
|
||||
RUN --device=lima-vm.io/rosetta=cached <your amd64 command>
|
||||
```
|
||||
|
||||
- **Check if caching works:**
|
||||
- **Check if caching works:**
|
||||
Look for cache files in the VM:
|
||||
```bash
|
||||
limactl shell {{.Name}} ls -la /var/cache/rosettad
|
||||
@@ -139,7 +139,7 @@ Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10
|
||||
# You should see *.aotcache files here
|
||||
```
|
||||
|
||||
- **Check if Docker recognizes the CDI device:**
|
||||
- **Check if Docker recognizes the CDI device:**
|
||||
Look for CDI info in the output of `docker info`:
|
||||
```console
|
||||
docker info
|
||||
@@ -151,5 +151,5 @@ Learn more: [WWDC2023 video](https://developer.apple.com/videos/play/wwdc2023/10
|
||||
cdi: lima-vm.io/rosetta=cached
|
||||
```
|
||||
|
||||
- **Learn more about CDI:**
|
||||
- **Learn more about CDI:**
|
||||
[CDI spec documentation](https://github.com/cncf-tags/container-device-interface/blob/main/SPEC.md)
|
||||
@@ -4,4 +4,4 @@ weight: 1
|
||||
---
|
||||
|
||||
See [Virtual Machine Drivers](../../dev/drivers.md).
|
||||
<!-- TODO: migrate the most of the content from ../../dev/drivers.md to here -->
|
||||
<!-- TODO: migrate the most of the content from ../../dev/drivers.md to here -->
|
||||
@@ -129,4 +129,4 @@ The benchmark result, especially the throughput of vzNAT, highly depends on the
|
||||
- Hardware: MacBook Pro 2024 (M4 Max, 128 GiB)
|
||||
|
||||
</p>
|
||||
</details>
|
||||
</details>
|
||||
@@ -25,4 +25,4 @@ flowchart
|
||||
|
||||
The default vmType is QEMU in Lima prior to v1.0.
|
||||
Starting with Lima v1.0, Lima will use VZ by default on macOS (>= 13.5) for new instances,
|
||||
unless the config is incompatible with VZ. (e.g., legacyBIOS or 9p is enabled)
|
||||
unless the config is incompatible with VZ. (e.g., legacyBIOS or 9p is enabled)
|
||||
@@ -27,4 +27,4 @@ base:
|
||||
- template:_default/mounts
|
||||
```
|
||||
{{% /tab %}}
|
||||
{{< /tabpane >}}
|
||||
{{< /tabpane >}}
|
||||
@@ -37,4 +37,4 @@ base:
|
||||
- On Intel Mac with macOS prior to 13.5, Linux kernel v6.2 (used by Ubuntu 23.04, Fedora 38, etc.) is known to be unbootable on vz.
|
||||
kernel v6.3 and later should boot, as long as it is booted via GRUB.
|
||||
https://github.com/lima-vm/lima/issues/1577#issuecomment-1565625668
|
||||
The issue is fixed in macOS 13.5.
|
||||
The issue is fixed in macOS 13.5.
|
||||
@@ -30,7 +30,7 @@ You can build existing internal drivers as external drivers using the `ADDITIONA
|
||||
# Build QEMU as external driver
|
||||
make ADDITIONAL_DRIVERS=qemu limactl additional-drivers
|
||||
|
||||
# Build multiple drivers as external
|
||||
# Build multiple drivers as external
|
||||
make ADDITIONAL_DRIVERS="qemu vz wsl2" limactl additional-drivers
|
||||
```
|
||||
|
||||
@@ -81,7 +81,7 @@ func main() {
|
||||
}
|
||||
```
|
||||
|
||||
3. **Build and deploy**:
|
||||
3. **Build and deploy**:
|
||||
- Build your driver: `go build -o lima-driver-mydriver main.go`
|
||||
- Place the binary in a directory accessible via `LIMA_DRIVERS_PATH`
|
||||
- Ensure the binary is executable
|
||||
@@ -96,5 +96,5 @@ limactl create myinstance --vm-type=mydriver template:default
|
||||
|
||||
See existing external driver implementations:
|
||||
- [`cmd/lima-driver-qemu/main.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-qemu/main.go)
|
||||
- [`cmd/lima-driver-vz/main_darwin.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-vz/main_darwin.go)
|
||||
- [`cmd/lima-driver-vz/main_darwin.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-vz/main_darwin.go)
|
||||
- [`cmd/lima-driver-wsl2/main_windows.go`](https://github.com/lima-vm/lima/blob/master/cmd/lima-driver-wsl2/main_windows.go)
|
||||
@@ -193,4 +193,4 @@ The volume label is "cidata", as defined by [cloud-init NoCloud](https://docs.cl
|
||||
|
||||

|
||||
|
||||
(based on Lima 0.8.3)
|
||||
(based on Lima 0.8.3)
|
||||
@@ -182,7 +182,7 @@ limactl shell --sync . default
|
||||
```
|
||||
|
||||
- **Yes**: Syncs changes back to your host and cleans up guest directory
|
||||
- **No**: Discards changes and cleans up guest directory
|
||||
- **No**: Discards changes and cleans up guest directory
|
||||
- **View the changed contents**: Shows a diff of changes made by the agent
|
||||
|
||||
### Requirements
|
||||
|
||||
@@ -7,4 +7,4 @@ Lima was designed to facilitate running containers inside a virtual machine, wit
|
||||
[filesystem sharing](../../config/mount.md) and [port forwarding](../../config/port.md).
|
||||
|
||||
The original motivation of Lima was to promote [containerd](./containerd) for macOS users, however,
|
||||
the current version of Lima supports other container engines too, and does not depend on macOS hosts.
|
||||
the current version of Lima supports other container engines too, and does not depend on macOS hosts.
|
||||
@@ -18,4 +18,4 @@ limactl shell apptainer-rootful apptainer run -u -B $HOME:$HOME docker://alpine
|
||||
{{% /tab %}}
|
||||
{{< /tabpane >}}
|
||||
|
||||
See also <https://apptainer.org/docs/user/latest/>.
|
||||
See also <https://apptainer.org/docs/user/latest/>.
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Advanced
|
||||
weight: 1
|
||||
---
|
||||
---
|
||||
@@ -36,4 +36,4 @@ See also the [documentation](https://code.visualstudio.com/docs/remote/ssh) of V
|
||||
|
||||
```bash
|
||||
limactl cp -r DIR default:~/
|
||||
```
|
||||
```
|
||||
@@ -43,8 +43,8 @@ Nix file: <https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/li/lima/pac
|
||||
{{% /tab %}}
|
||||
|
||||
{{% tab header="Binary" %}}
|
||||
Download the binary archive of Lima from <https://github.com/lima-vm/lima/releases>,
|
||||
and extract it under `/usr/local` (or somewhere else).
|
||||
Download the binary archive of Lima from <https://github.com/lima-vm/lima/releases>,
|
||||
and extract it under `/usr/local` (or somewhere else).
|
||||
|
||||
```bash
|
||||
VERSION=$(curl -fsSL https://api.github.com/repos/lima-vm/lima/releases/latest | jq -r .tag_name)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
---
|
||||
title: Command Reference
|
||||
weight: 999
|
||||
---
|
||||
---
|
||||
@@ -13,4 +13,4 @@ See <https://github.com/lima-vm/lima/releases> for the latest release.
|
||||
| v1.x | 2024-11-06 | 2026-02-06 (v2 Begin + 3 months) |
|
||||
| v0.x | 2021-05-14 | 2024-11-06 (v1 Begin + 0 days) |
|
||||
|
||||
Since Lima v1.x, each major release receives security updates and critical bug fixes until three months after the next major release.
|
||||
Since Lima v1.x, each major release receives security updates and critical bug fixes until three months after the next major release.
|
||||
@@ -25,4 +25,4 @@ weight: 20
|
||||
## [v0.3.0](https://github.com/lima-vm/lima/releases/tag/v0.3.0)
|
||||
- `limactl start` no longer starts a VM in the foreground.
|
||||
|
||||
See also <https://github.com/lima-vm/lima/releases>.
|
||||
See also <https://github.com/lima-vm/lima/releases>.
|
||||
@@ -42,4 +42,4 @@ The port number can be inspected as follows:
|
||||
limactl list --format '{{ .SSHLocalPort }}' default
|
||||
```
|
||||
|
||||
See also `.lima/default/ssh.config`.
|
||||
See also `.lima/default/ssh.config`.
|
||||
+1
-1
@@ -204,7 +204,7 @@ enable = false
|
||||
url = "/docs/community"
|
||||
[[menus.main]]
|
||||
name = "Releases"
|
||||
url = "https://github.com/lima-vm/lima/releases"
|
||||
url = "https://github.com/lima-vm/lima/releases"
|
||||
|
||||
[module]
|
||||
# uncomment line below for temporary local development of module
|
||||
|
||||
@@ -50,4 +50,4 @@
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
@@ -60,4 +60,4 @@
|
||||
{{ partial "search-input.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</nav>
|
||||
@@ -10,4 +10,4 @@
|
||||
</a>
|
||||
{{- end }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
<img class="cncf-logo"
|
||||
src="/images/cncf-color-bg.svg" alt="Cloud Native Computing Foundation logo" />
|
||||
</section>
|
||||
</section>
|
||||
@@ -23,4 +23,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
@@ -12,4 +12,4 @@
|
||||
{{ .label }} <i class="fas fa-arrow-alt-circle-right ml-2"></i>
|
||||
</a>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,3 +1,3 @@
|
||||
{{ $gh_repo := (.Site.Params.github_repo) -}}
|
||||
|
||||
{{- replace (.Inner | safeHTML) "(./" (printf "(%s/tree/%s/" $gh_repo $.Site.Params.version) -}}
|
||||
{{- replace (.Inner | safeHTML) "(./" (printf "(%s/tree/%s/" $gh_repo $.Site.Params.version) -}}
|
||||
Reference in new issue
Block a user