You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Running "cargo build -p chariott" fails in a vscode devcontainer running on MacOS (x64) with Docker VirtuoFS.
Expected Behavior
Cargo build should complete with success
Current Behavior
Build fails printing various inconsistent error messages typically complaining not being able to locate artifacts in the target folder:
...
= note: /usr/bin/ld: cannot find /workspaces/chariott/target/debug/build/chariott-proto-081e3239d3e38e03/build_script_build-081e3239d3e38e03.376i4vsos7gxedbo.rcgu.o: No such file or directory
/usr/bin/ld: cannot find /workspaces/chariott/target/debug/build/chariott-proto-081e3239d3e38e03/build_script_build-081e3239d3e38e03.ybchmlo3fea63ob.rcgu.o: No such file or directory
collect2: error: ld returned 1 exit status
error: could not compile chariott-proto due to previous error
Steps to Reproduce
Clone charriot repository from github
Launch vscode remote devcontainer
cargo build -p chariott
Build fails
Context (Environment)
Running with vscode ( 1.76.2)
devcontainer (0.2888)
Docker Desktop v4.16.2 (with VirtuoFS enabled)
MacBook Pro (i9 Intel) macos Ventura 13.2.1.
Additional Information
This is not a bug report but a request to extend the README documentation for mac users. After quite a bit trial and error and searching similar problems with rust in devcontainers, the following Stack Overflow solution provided the correct diagnosis and a workaround solution.
I am not sure this needs to be a fix in this repository or chariott but I decided to log it as an issue that should probably be a part of the README file to help others using a Macbook to build charriot.
Docker Desktop provides a fast VirtuoFS implementation on a mac but rust build process breaks in devcontainers if VirtuoFS is enabled. The solution is not disabling the VirtuoFS, because this significantly slows down the I/O operations in the containers.
The workaround is to create a target folder outside the chariott workspace and set the environment variable to the new target folder. The following sequence works in the dev container:
Thank you for the investigation and suggestion! We welcome you to create a pull request which adds this information to the top-level README.md (maybe a section below "Build all binaries and run tests" for "Build on MacOS with Docker VirtuoFS" and the steps you have provided). We would be happy to review your PR contribution.
Running "cargo build -p chariott" fails in a vscode devcontainer running on MacOS (x64) with Docker VirtuoFS.
Expected Behavior
Cargo build should complete with success
Current Behavior
Build fails printing various inconsistent error messages typically complaining not being able to locate artifacts in the target folder:
... = note: /usr/bin/ld: cannot find /workspaces/chariott/target/debug/build/chariott-proto-081e3239d3e38e03/build_script_build-081e3239d3e38e03.376i4vsos7gxedbo.rcgu.o: No such file or directory /usr/bin/ld: cannot find /workspaces/chariott/target/debug/build/chariott-proto-081e3239d3e38e03/build_script_build-081e3239d3e38e03.ybchmlo3fea63ob.rcgu.o: No such file or directory collect2: error: ld returned 1 exit statuserror: could not compile
chariott-proto
due to previous errorSteps to Reproduce
Build fails
Context (Environment)
Additional Information
This is not a bug report but a request to extend the README documentation for mac users. After quite a bit trial and error and searching similar problems with rust in devcontainers, the following Stack Overflow solution provided the correct diagnosis and a workaround solution.
I am not sure this needs to be a fix in this repository or chariott but I decided to log it as an issue that should probably be a part of the README file to help others using a Macbook to build charriot.
Docker Desktop provides a fast VirtuoFS implementation on a mac but rust build process breaks in devcontainers if VirtuoFS is enabled. The solution is not disabling the VirtuoFS, because this significantly slows down the I/O operations in the containers.
The workaround is to create a target folder outside the chariott workspace and set the environment variable to the new target folder. The following sequence works in the dev container:
The text was updated successfully, but these errors were encountered: