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

Database Containers Sample #473

Open
mick-anderson24 opened this issue Sep 18, 2024 · 3 comments
Open

Database Containers Sample #473

mick-anderson24 opened this issue Sep 18, 2024 · 3 comments

Comments

@mick-anderson24
Copy link

mick-anderson24 commented Sep 18, 2024

I've used this sample to implement the MSSql database container and pre-configure a database and table. The issue I have been running into is when the application starts and tries to spin up the MSSql database, it will intermittently fail to find the entrypoint.sh file. I would think copy and paste the entrypoint.sh file in this sample into my solution and it magically starts working again the next time I run it.

The error log in the container says it couldn't find the file entrypoint.sh even though the file didn't change nor did the name of the file. It seems to happen after I change branches from one that doesn't have this setup to the branch with these changes in it. Once I do that copy it works for the rest of the day Any ideas on why this happens?

Aspire console window:
fail: Aspire.Hosting.Dcp.dcpctrl.ContainerReconciler[0] could not determine host address and port for container port {"Container": {"name":"sqlserver-fbcgzhnc"}, "Reconciliation": 16, "error": "container '/sqlserver-fbcgzhnc' is not running: exited"} fail: Aspire.Hosting.Dcp.dcpctrl.ContainerReconciler[0] could not create Endpoint object {"Container": {"name":"sqlserver-fbcgzhnc"}, "Reconciliation": 16, "ServiceName": "sqlserver", "Workload": "/sqlserver-fbcgzhnc", "error": "container '/sqlserver-fbcgzhnc' is not running: exited"}

SqlServer container: 2024-09-18 12:33:13 exec /usr/config/entrypoint.sh: no such file or directory

@mick-anderson24
Copy link
Author

Solution structure for the AppHost:
image

Program.cs for AppHost:
image

entrypoint.sh file in AppHost
image

@DamianEdwards
Copy link
Member

Most issues with implementing this pattern I've seen are to do with inconsistent line endings and/or whitespace, and the execution bit not being set correctly on the entrypoint.sh file. Make sure you have your .gitattributes configured so that .sh files keep LF line endings and that the file itself is using spaces consistently. Also ensure the execute bit is properly set on the file and committed as such in git (this can be a tricky to do from Windows but if you search you'll find lots of references on how to fix it).

@matt-goldman
Copy link

@mick-anderson24 I had the same problem. And confirming as @DamianEdwards said, my entrypoint.sh and configure-db.sh files were using CRLF. Interestingly, I was working on macOS, not Windows. Anyway, I cloned the samples repo and compared my files with the sample and confirmed they were identical, except mine were using CRLF.

However, I can also confirm that my versions of the files were not marked as executable. Using my original files and changing the permissions (UOG+=rwx just for belt and braces) resolved the issue for me. So I think this is the key blocker here, not the line endings.

Re changing the permissions on Windows, I guess the easiest way to do this would be to use git bash or WSL. Although if your files are identical to those in the samples, then you can just clone that repo and replace your files with theirs. I tested this on Windows and it worked.

Thanks @DamianEdwards!

cc @IEvangelist - should this be in the docs?

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

3 participants