Skip to content

Instantly share code, notes, and snippets.

@Sitin
Last active November 17, 2023 09:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sitin/db0de5bdb98d648b320f5a77137b8ece to your computer and use it in GitHub Desktop.
Save Sitin/db0de5bdb98d648b320f5a77137b8ece to your computer and use it in GitHub Desktop.
`cross` is broken when running in `CROSS_REMOTE` mode

cross is broken in CROSS_REMOTE mode

cross installed via upstream branch in Docker (see Dockerfile of this gist) from latest commit as of November the 16th 2023.

I've imitated two scenarios:

  1. Run cross in "local" mode (no CROSS_REMOTE set) and it works fine. Service name is cross-sys. Output in docker-compose run --rm cross-sys.
  2. Run cross in "remote" mode when CROSS_REMOTE is set and cross connects to this remote conection. In this scenario cross at some point FAILS. Service name is cross-remote. Output in docker-compose run --rm cross-remote.

I've tested with target.x86_64-unknown-linux-gnu target but target.aarch64-unknown-linux-gnu target demonstrates the same behavior.

Environment

  • OS: OS X 13.2.1 (22D68) on Apple Silicon (M1 Pro)
  • Docker: 24.0.6 on Docker Desktop. See docker info.

Docker setup

Remote Docker functionality is provided by the official latest stable Docker-in-Docker image docker.io/docker:24.0.7-dind. See docker-compose.yml for setup details. Also check the results of the docker-compose run --rm cross-remote, this is the Docker local to cross in remote settings.

[build]
build-std = false
[target.aarch64-unknown-linux-gnu]
build-std = false
[target.x86_64-unknown-linux-gnu]
build-std = false
Client:
Version: 24.0.6
Context: desktop-linux
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2-desktop.5
Path: /Users/ziatin/.docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.23.0-desktop.1
Path: /Users/ziatin/.docker/cli-plugins/docker-compose
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.0
Path: /Users/ziatin/.docker/cli-plugins/docker-dev
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.20
Path: /Users/ziatin/.docker/cli-plugins/docker-extension
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v0.1.0-beta.9
Path: /Users/ziatin/.docker/cli-plugins/docker-init
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: /Users/ziatin/.docker/cli-plugins/docker-sbom
scan: Docker Scan (Docker Inc.)
Version: v0.26.0
Path: /Users/ziatin/.docker/cli-plugins/docker-scan
scout: Docker Scout (Docker Inc.)
Version: v1.0.9
Path: /Users/ziatin/.docker/cli-plugins/docker-scout
Server:
Containers: 10
Running: 1
Paused: 0
Stopped: 9
Images: 128
Server Version: 24.0.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: 8165feabfdfe38c65b599c4993d227328c231fca
runc version: v1.1.8-0-g82f18fe
init version: de40ad0
Security Options:
seccomp
Profile: unconfined
cgroupns
Kernel Version: 6.4.16-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: aarch64
CPUs: 10
Total Memory: 3.834GiB
Name: linuxkit-86222621a932
ID: 4d5b391e-558f-4c11-8a60-b25fccdc7e11
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
127.0.0.0/8
Live Restore Enabled: false
WARNING: daemon is not using the default seccomp profile
[+] Building 0.0s (0/0) docker:desktop-linux
[+] Creating 1/0
✔ Container cross-dind-docker-1 Running 0.0s
[+] Building 0.0s (0/0) docker:desktop-linux
+ cargo metadata --format-version 1 --filter-platform x86_64-unknown-linux-gnu
+ rustc --print sysroot
+ /usr/local/bin/docker
+ /usr/local/bin/docker version -f '{{ .Server.Os }},,,{{ .Server.Arch }}'
+ rustup toolchain list
+ rustup
+ rustup toolchain add stable-x86_64-unknown-linux-gnu --profile minimal --force-non-host
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2023-11-16, rust version 1.74.0 (79e9716c9 2023-11-13)
info: downloading component 'cargo'
info: downloading component 'rust-std'
26.3 MiB / 26.3 MiB (100 %) 20.6 MiB/s in 1s ETA: 0s
info: downloading component 'rustc'
58.7 MiB / 58.7 MiB (100 %) 19.2 MiB/s in 3s ETA: 0s
info: installing component 'cargo'
info: installing component 'rust-std'
26.3 MiB / 26.3 MiB (100 %) 16.5 MiB/s in 1s ETA: 0s
info: installing component 'rustc'
58.7 MiB / 58.7 MiB (100 %) 18.9 MiB/s in 3s ETA: 0s
stable-x86_64-unknown-linux-gnu installed - (error reading rustc version)
info: checking for self-update
+ rustup target list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component add rust-src --toolchain stable-x86_64-unknown-linux-gnu
info: downloading component 'rust-src'
info: installing component 'rust-src'
+ /usr/local/bin/docker volume list --format {{.Name}} --filter 'name=^cross-stable-x86_64-unknown-linux-gnu'
+ /usr/local/bin/docker ps -a --filter 'name=cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528' --format {{.State}}
+ /usr/local/bin/docker run --userns host --platform linux/amd64 --name cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 --rm -v /cross -v /cross/cargo/bin -d -t ghcr.io/cross-rs/x86_64-unknown-linux-gnu:main
ef8c5f6a46f61a84b8a30931d535220a91d2befab715406c0c705a40db40d079
+ /usr/local/bin/docker exec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 sh -c 'mkdir -p '\''/cross/root'\'''
+ /usr/local/bin/docker cp -a /root/.xargo/. cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.xargo
Successfully copied 1.54kB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.xargo
+ /usr/local/bin/docker exec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 sh -c 'mkdir -p '\''/cross/root/.cargo'\'''
+ /usr/local/bin/docker cp -a /root/.cargo/env cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.cargo
Successfully copied 2.05kB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.cargo
+ /usr/local/bin/docker cp -a /root/.cargo/bin cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.cargo
Successfully copied 24.7MB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.cargo
+ /usr/local/bin/docker exec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 sh -c 'mkdir -p '\''/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib'\'''
+ /usr/local/bin/docker cp -a /root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
Successfully copied 59.2MB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
+ /usr/local/bin/docker cp -a /root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/libexec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
Successfully copied 7.67MB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
+ /usr/local/bin/docker cp -a /root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/etc cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
Successfully copied 13.3kB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
+ /usr/local/bin/docker cp -a /root/.local/share/cross-rs/tmp/.tmpAkQ2wg/lib cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
Successfully copied 302MB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
+ /usr/local/bin/docker cp -a /root/.local/share/cross-rs/tmp/.tmpUOHpjN/lib cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
Successfully copied 836kB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu
+ /usr/local/bin/docker cp -a /root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib
Successfully copied 180MB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib
+ /usr/local/bin/docker exec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 sh -c 'mkdir -p '\''/cross/'\'''
+ /usr/local/bin/docker cp -a /root/.local/share/cross-rs/tmp/.tmpuQ8rH6/. cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/work
Successfully copied 13.8kB to cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528:/cross/work
+ /usr/local/bin/docker exec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 sh -c 'set -e pipefail
set -x
chown -R 0:0 /cross
prefix="/cross"
symlink_recurse() {
for f in "${1}"/*; do
dst=${f#"$prefix"}
if [ -f "${dst}" ]; then
echo "invalid: got unexpected file at ${dst}" 1>&2
exit 1
elif [ -d "${dst}" ]; then
symlink_recurse "${f}"
else
ln -s "${f}" "${dst}"
fi
done
}
symlink_recurse "${prefix}"
'
+ chown -R 0:0 /cross
+ prefix=/cross
+ symlink_recurse /cross
+ dst=/cargo
+ [ -f /cargo ]
+ [ -d /cargo ]
+ ln -s /cross/cargo /cargo
+ dst=/root
+ [ -f /root ]
+ [ -d /root ]
+ symlink_recurse /cross/root
+ dst=/root/*
+ [ -f /root/* ]
+ [ -d /root/* ]
+ ln -s /cross/root/* /root/*
+ dst=/work
+ [ -f /work ]
+ [ -d /work ]
+ ln -s /cross/work /work
+ /usr/local/bin/docker exec --user 0:0 -e 'PKG_CONFIG_ALLOW_CROSS=1' -e 'XARGO_HOME=/root/.xargo' -e 'CARGO_HOME=/root/.cargo' -e 'CROSS_RUST_SYSROOT=/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu' -e 'CARGO_TARGET_DIR=/target' -e 'CROSS_RUNNER=' -e CROSS_CONTAINER_ENGINE -e TERM -e CROSS_REMOTE -e 'USER=root' -e 'CROSS_RUSTC_MAJOR_VERSION=1' -e 'CROSS_RUSTC_MINOR_VERSION=0' -e 'CROSS_RUSTC_PATCH_VERSION=0' -w /work cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 sh -c 'PATH="$PATH":"/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin" cargo -v build --bin dummy --target x86_64-unknown-linux-gnu --target-dir target'
sh: 1: cargo: not found
+ /usr/local/bin/docker exec cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 bash -c '[[ -d '\''/cross//work/target'\'' ]]'
+ /usr/local/bin/docker stop cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528 --time 2
cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528
+ /usr/local/bin/docker rm cross-stable-x86_64-unknown-linux-gnu-53e1a-79e9716c9-x86_64-unknown-linux-gnu-342f2-1700212428528
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu
[+] Building 0.0s (0/0) docker:desktop-linux
[+] Creating 1/0
✔ Container cross-dind-docker-1 Running 0.0s
[+] Building 0.0s (0/0) docker:desktop-linux
Client:
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/local/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.23.0
Path: /usr/local/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 2
Server Version: 24.0.7
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 091922f03c2762540fd057fba91260237ff86acb
runc version: v1.1.9-0-gccaecfc
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.4.16-linuxkit
Operating System: Alpine Linux v3.18 (containerized)
OSType: linux
Architecture: aarch64
CPUs: 10
Total Memory: 3.834GiB
Name: 59424e8b22af
ID: 34935a33-76c2-4208-8ada-8705c06750d2
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
[+] Building 0.0s (0/0) docker:desktop-linux
[+] Building 0.0s (0/0) docker:desktop-linux
+ cargo metadata --format-version 1 --filter-platform x86_64-unknown-linux-gnu
+ rustc --print sysroot
+ /usr/local/bin/docker
+ /usr/local/bin/docker version -f '{{ .Server.Os }},,,{{ .Server.Arch }}'
+ rustup toolchain list
+ rustup
+ rustup toolchain add stable-x86_64-unknown-linux-gnu --profile minimal --force-non-host
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
info: latest update on 2023-11-16, rust version 1.74.0 (79e9716c9 2023-11-13)
info: downloading component 'cargo'
info: downloading component 'rust-std'
26.3 MiB / 26.3 MiB (100 %) 19.0 MiB/s in 1s ETA: 0s
info: downloading component 'rustc'
58.7 MiB / 58.7 MiB (100 %) 19.8 MiB/s in 2s ETA: 0s
info: installing component 'cargo'
info: installing component 'rust-std'
26.3 MiB / 26.3 MiB (100 %) 17.4 MiB/s in 1s ETA: 0s
info: installing component 'rustc'
58.7 MiB / 58.7 MiB (100 %) 19.1 MiB/s in 3s ETA: 0s
stable-x86_64-unknown-linux-gnu installed - (error reading rustc version)
info: checking for self-update
+ rustup target list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component list --toolchain stable-x86_64-unknown-linux-gnu
+ rustup component add rust-src --toolchain stable-x86_64-unknown-linux-gnu
info: downloading component 'rust-src'
info: installing component 'rust-src'
+ /usr/local/bin/docker inspect 6a8b4666df64
+ /usr/local/bin/docker run --userns host --platform linux/amd64 -e 'PKG_CONFIG_ALLOW_CROSS=1' -e 'XARGO_HOME=/root/.xargo' -e 'CARGO_HOME=/root/.cargo' -e 'CROSS_RUST_SYSROOT=/var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu' -e 'CARGO_TARGET_DIR=/target' -e 'CROSS_RUNNER=' -e CROSS_CONTAINER_ENGINE -e CROSS_CONTAINER_OPTS -e CROSS_CONTAINER_ENGINE_NO_BUILDKIT -e CROSS_CONTAINER_IN_CONTAINER -e TERM -e 'USER=root' --platform linux/amd64 -e 'CROSS_RUSTC_MAJOR_VERSION=1' -e 'CROSS_RUSTC_MINOR_VERSION=0' -e 'CROSS_RUSTC_PATCH_VERSION=0' --name cross-stable-x86_64-unknown-linux-gnu-9d318-cc66ad468-x86_64-unknown-linux-gnu-342f2-1700212622623 --rm --user 0:0 -v /var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/root/.xargo:/root/.xargo:z -v /var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/root/.cargo:/root/.cargo:z -v /root/.cargo/bin -v /var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/work:/var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/work:z -v /var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu:/var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu:z,ro -v /Users/ziatin/Dropbox/Workspace/mavka/external/cross-dind/target/:/target:z -w /var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/work -t ghcr.io/cross-rs/x86_64-unknown-linux-gnu:main sh -c 'PATH="$PATH":"/var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin" cargo -v build --bin dummy --release --target x86_64-unknown-linux-gnu'
Fresh dummy v0.1.0 (/var/lib/docker/overlay2/a2b5a3c631e5080ecba75f205380f39e69a7675a9af25fbdb553b99188a19811/merged/work/dummy)
<jemalloc>: MADV_DONTNEED does not work (memset will be used instead)
<jemalloc>: (This is the expected behaviour if you are running under QEMU)
Finished release [optimized] target(s) in 0.70s
[+] Building 0.0s (0/0) docker:desktop-linux
[+] Building 0.0s (0/0) docker:desktop-linux
Client:
Version: 24.0.7
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.11.2
Path: /usr/local/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.23.0
Path: /usr/local/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 11
Running: 2
Paused: 0
Stopped: 9
Images: 128
Server Version: 24.0.6
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 8165feabfdfe38c65b599c4993d227328c231fca
runc version: v1.1.8-0-g82f18fe
init version: de40ad0
Security Options:
seccomp
Profile: unconfined
cgroupns
Kernel Version: 6.4.16-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: aarch64
CPUs: 10
Total Memory: 3.834GiB
Name: linuxkit-86222621a932
ID: 4d5b391e-558f-4c11-8a60-b25fccdc7e11
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
127.0.0.0/8
Live Restore Enabled: false
WARNING: daemon is not using the default seccomp profile
services:
# Cross-in-Docker image
cross:
image: cross-dind-cross
build:
context: .
dockerfile: Dockerfile
args:
# Set to `true` to install from GitHub upstream, otherwise v0.2.5 release will be chosen
USE_UPSTREAM_CROSS: true
# Run cross using remote Docker-in-Docker
cross-remote:
image: cross-dind-cross
command: cross build --bin dummy --target x86_64-unknown-linux-gnu
volumes:
# Target directory
- ./target:/work/target
# Docker certificates
- certs:/certs:ro
depends_on:
- docker
environment:
DOCKER_HOST: tcp://docker:2376
DOCKER_DRIVER: overlay2
DOCKER_CERT_PATH: "/certs/client"
DOCKER_TLS_VERIFY: 1
CROSS_REMOTE: 1
CROSS_CONTAINER_ENGINE: docker
# Run cross using system Docker through socket
cross-sys:
image: cross-dind-cross
command: cross build --bin dummy --release --target x86_64-unknown-linux-gnu
volumes:
# Target in artefacts
- ./target:/work/target
# Docker socket
- /var/run/docker.sock:/var/run/docker.sock
environment:
CROSS_CONTAINER_ENGINE: docker
CROSS_CONTAINER_IN_CONTAINER: true
CROSS_CONTAINER_ENGINE_NO_BUILDKIT: 1
CROSS_CONTAINER_OPTS: "--platform linux/amd64"
# Official Docker-in-Docker with TLS and remote access via port `2376`
docker:
image: docker.io/docker:24.0.7-dind
privileged: true
environment:
DOCKER_TLS_CERTDIR: "/certs"
volumes:
# Store Docker certificates into volume
- certs:/certs:rw
# Store docker state into volume (for caching)
- cache:/var/lib/docker
volumes:
# Docker certificates
certs:
# Docker-in-Docker state (for caching)
cache:
FROM docker.io/docker:24.0.7
RUN apk update && \
apk add --no-cache curl unzip git gcc bash musl-dev
# Install rustup with minimum dependencies
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --profile minimal -y
# Add cargo to $PATH
ENV PATH=/root/.cargo/bin:$PATH
# Install cross
ARG USE_UPSTREAM_CROSS=true
ENV USE_UPSTREAM_CROSS=$USE_UPSTREAM_CROSS
RUN if [ $USE_UPSTREAM_CROSS = "true" ]; then \
echo "Install cross from GitHub upstream"; \
cargo install cross --git https://github.com/cross-rs/cross; \
else \
echo "Install cross@0.2.5 (latest release at the moment)"; \
cargo install cross@0.2.5; \
fi
# Create directories
RUN mkdir -p /work/target
VOLUME /work/target
# Set working directory
WORKDIR /work
# Copy project code
COPY . .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment