Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker container doesn't work on M1 Mac #4

Open
ulfjack opened this issue Mar 28, 2023 · 3 comments
Open

Docker container doesn't work on M1 Mac #4

ulfjack opened this issue Mar 28, 2023 · 3 comments

Comments

@ulfjack
Copy link
Member

ulfjack commented Mar 28, 2023

I'm able to run the container on an M1 Mac like this:

docker run --init --rm -p 8080:8080 --platform linux/amd64 ghcr.io/engflow/free:2.8.0

However, I get the following error:

java.lang.IllegalArgumentException: CAS is too small to support 5 executors:
        Disk size       62,671,097,856
- Reserved for OS       12,534,219,572 (20% of disk)
- Max output size       20,000,000,000 (4,000,000,000 Bytes of outputs per executor)
   - Replica size       15,068,439,142
                =       15,068,439,142
     is less than       20,000,000,000 (4,000,000,000 Bytes of inputs per executor)
	at com.engflow.re.cas.CasConfig.determineCasConfig(CasConfig.java:72)
	at com.engflow.re.mini.Main.start(Main.java:272)
	at com.engflow.re.mini.Main.main(Main.java:141)

When I reduce the input/output tree sizes, I can get it to start successfully:

docker run --init --rm -p 8080:8080 --platform linux/amd64 ghcr.io/engflow/free:2.8.0 --max_input_size=2GB --max_output_size=2GB

However, it doesn't reply to HTTP requests:

upstream connect error or disconnect/reset before headers. reset reason: connection failure, transport failure reason: delayed connect error: 111

I think this is an error from envoy unable to talk to mini. I also tried to talk to mini directly, but I just get empty responses.

@saraadams
Copy link

I gave it a try just now and it worked fine for me with this command:

docker run --init --rm --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock -v /tmp/engflow_data:/tmp/engflow_data -e DATA_DIR=/tmp/engflow_data -p 8080:8080 --platform linux/amd64 ghcr.io/engflow/free:2.42.0

I did not attempt to remotely execute against mini, but forwarding the BES and viewing the UI worked as is.

@ulfjack
Copy link
Member Author

ulfjack commented Jun 6, 2023

Thanks!

This works for me:

docker run --init --rm -v /tmp/engflow_data:/tmp/engflow_data -e DATA_DIR=/tmp/engflow_data -p 8080:8080 --platform linux/amd64 ghcr.io/engflow/free:2.42.0

This doesn't:

docker run --init --rm -e DATA_DIR=/tmp/engflow_data -p 8080:8080 --platform linux/amd64 ghcr.io/engflow/free:2.42.0

@ulfjack
Copy link
Member Author

ulfjack commented Jun 28, 2023

I'd like to change it so it works even if the -v flag isn't specified, or at least fails with a good error message. The current state where it silently hangs is a footgun.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants