hi there .. i am attempting to follow the demo container install and am running into issues (of course .. it's me!) .. I launched an ec2 instance (ubuntu 22), installed docker, put the "ubuntu" user into the docker group, copied compose.yml, and ran "docker compose up" .. the installer exits with a bootstrap error (attached) ... and it looks like the solr container (and bootstrap) are exited .. the landing page looks like the attached ..
.. i tried both the "dev" and "demo" personas (with edits suggested) and same on both .. i tried stopping/removing all the containers and images and deleting the data directory and tried installing again a few times for both personas .. it's almost there, just not quite! :sweat_smile: .. any suggestions?
dv-docker-demo.jpg
dv-compose-error.jpg
looking through docker logs for errors ..
Hmm, can you please share your server.log file?
here is payara logs text .. and also .. "docker logs bootstrap" errors ..
ServerLogs.txt
docker-bootstrap-errors.jpg
Thanks, what does http://localhost:8080/api/info/version show?
Nothing is jumping out at me.
shows OK .. version 6.1
okay, i'll keep messing with it .. thanks!
Maybe it timed out. Maybe you need to bump the timeout.
Please see https://preview.guides.gdcc.io/en/develop/container/running/demo.html#bootstrapping-did-not-complete
that WAS my issue when I did this before :big_smile:
i'll try it
no luck .. set the timeout to 1m, 3m, 10m; tried increasing memory/CPU; tried running as root :woman_shrugging:
i do keep seeing the below bootstrap error at startup .. but the curl command to check version at command line is okay .. will keep trying things :smirk:
bootstrap-error.jpg
Bah. Instead of a jpg, are you able to capture the entire output as a txt file?
oops sorry wasn't getting all of the error output .. i think this has all of the startup output
including those bootstrap errors
weird the connection refused as i have everything open to port 8080 .. and it works from the command line
that IP is a network device on the VPN .. i think?
I'm seeing this: bootstrap | Waiting for http://dataverse:8080 to become ready in max 3m.
Have you tried 10 minutes?
yes i did but i'll try it again
Ok, thanks because I'm seeing bootstrap | 2024-03-12T20:47:14Z ERR Expectation failed error="timed out while making an http call, caused by: Get \"http://dataverse:8080/api/info/version\": context deadline exceeded (Client.Timeout exceeded while awaiting headers)" timeout=3s followed by Dataverse continuing to try to deploy.
maybe i wrote the timeout block wrong .. it looks like this:
bootstrap:
container_name: "bootstrap"
image: gdcc/configbaker:alpha
restart: "no"
environment:
- TIMEOUT=3m
command:
- bootstrap.sh
- dev
from last time, i think maybe it needs to be TIMEOUT:3m right? agh
or .. maybe i just ended up putting it in the command line
The main thing is to check the output to make sure it changes to 10 or whatever.
You're right, we DID talk about this before! Over here: https://dataverse.zulipchat.com/#narrow/stream/375812-containers/topic/running.20using.20compose/near/389735877
Should be similar.
yea i looked at that to get the format and made it just like that
bah
oh yea, and it is equals and not :
Do you see 10 in the output?
i still see 10s .. i think i need to format the yml file as an array like oliver suggested above in that thread .. trying that now
Ok. If you figure it out, please consider making a pull request to improve https://github.com/IQSS/dataverse/blob/develop/doc/sphinx-guides/source/container/running/demo.rst !
argh still didn't work .. still shows 10s in the log no matter how I format the .yml file .. will keep trying things .. somehow we got it working last time :big_smile:
thanks for your help!
Is 10 the default? I saw 3 in your output before. The main thing for the change you make to have an effect.
yea i don't think my changes are having an effect .. I have tried changing the timeout for the dataverse container in compose.yml to 3m, 5m, and 10m but it doesn't seem to matter, the output error continues to reflect 10s .. I tried both adding the "environment" section with TIMEOUT=10m (above) and adding the values in "array" format as suggested in the previous thread but nothing seems to be reflected on the output error message and the site doesn't completely build .. it always shows "Timeout exceeded while awaiting headers)" timeout=3s" ... will keep trying things ..
.. i restored the image that I took of my original instance and looked at the settings and made them exactly the same .. no win
Bah. If you feel like it, you could create an issue saying we should document this better in that demo.rst file above.
Oh man I canβt imagine this being better/easier :grinning_face_with_smiling_eyes: .. I just need to figure out whatβs happening in my instance .. sorry if it sounded otherwise haha
What happens if you run this without compose? It should look like this:
β― docker run -e TIMEOUT=10m gdcc/configbaker:unstable bootstrap.sh
Waiting for http://dataverse:8080 to become ready in max 10m.
2024-03-13T08:42:48Z INF [HTTP] Checking the http://dataverse:8080/api/info/version ...
ah .. i thought there was a way to put the timeout in the command line! (Would help if I knew any docker commands) :big_smile:
ran that and just getting this error over and over:
2024-03-13T14:59:19Z INF [HTTP] Checking the http://dataverse:8080/api/info/version ...
2024-03-13T14:59:19Z ERR Expectation failed error="the status code doesn't expect" actual=403 expect=200
.. it creates a container called "recursing_kilby" .. will let it run and see what happens
yea, just fails with "Error: context deadline exceeded" error
What is the first line of output there?
You might notice in my snippet there is the timeout properly set to 10m and not to 10s.
yes i copied your command exactly as it is .. the first line of output says "Waiting for http://dataverse:8080 to become ready in max 10m."
docker-command-line-timeout.jpg
@Deirdre Kirmis I just made a pull request after doing a little testing. Please check it out: clarify how to increase timeout in docker demo #10410
Looks great! I do have that set in my compose.yml .. but in the bootstrap log the first line of output shows the "waiting to become ready in max 10m" whereas further down there is an error "context deadline exceeded timeout=3s" so somewhere that setting is getting lost ..
..and the result is this.. http://dataverse-docker-qa.lib.asu.edu:8080/
Also, I have to remove the containers and images each time I reload because otherwise the site doesn't load at all ...
..haven't had time to work on this much the last few days, but will continue to troubleshoot as I can :woman_shrugging:
.. sorry for jumping in/out of the container WG meeting this morning .. too many super smart people in one place! :big_smile:
i did try installing on virtualbox and my mac and get the same issue .. i restored my image of the instance of the docker version that I had working a few months ago and it is doing the same thing now too .. weird
Ok, so it sounds like you're seeing "10m" in the output. The change is in place. But all the time in the world isn't going to help! It's something else, right?
well there is another error farther down indicating a 3s timeout .. I thought you had said that was related and may be affecting the bootstrap process .. not sure what is happening :sweat_smile:
but yea, seems something else is likely going on .. this is an instance on a public subnet (ie: not behind a LB) .. i tried adding a security group rule allowing all traffic in case it was a port issue (not a good idea i know) .. but it is weird that my container instance that worked a couple months ago (ie: the site came up and I was able to login) now gives the same errors ..
Is this maybe a similar error as in #containers > curl DNS broken ?
Maybe :thinking:
yes, seems the same .. my instance is an ubuntu 22.04 with 8G RAM and 2 CPUs .. the behavior is the same, as I get the repeating message in the bootstrap log with 404 error .. I am using an instance that is on a public subnet with our DNS server pointing to the instance public URL .. going to the site shows the main dataverse landing with a "page not found" error
"I did a bootstrap manually now by circumventing the DNS lookup (provided the Dataverse URL as command argument)"
@Deirdre Kirmis are you interested in creating an issue for this problem? It sounds like we could use some more docs, at least.
okay, sure will do
how would i "do the bootstrap manually" to see if that works?
If you run docker run -it --rm gdcc/configbaker:unstable bootstrap.sh -h you should see help output like this:
Usage: bootstrap.sh [-h] [-u instanceUrl] [-t timeout] [-e targetEnvFile] [<persona>]
Execute initial configuration (bootstrapping) of an empty Dataverse instance.
Known personas: dev base demo
Parameters:
instanceUrl - Location on container network where to reach your instance. Default: 'http://dataverse:8080'
timeout - Provide how long to wait for the instance to become available (using wait4x). Default: '2m'
targetEnvFile - Path to a file where the bootstrap process can expose information as env vars (e.g. dataverseAdmin's API token)
persona - Configure persona to execute. Calls /scripts/bootstrap/<persona>/init.sh. Default: 'base'
Note: This script will wait for the Dataverse instance to be available before executing the bootstrapping.
It also checks if already bootstrapped before (availability of metadata blocks) and skip if true.
... and I assume you'd use -u instanceUrl
Not that I've ever done it! :sweat_smile:
ah okay .. was just trying to see if I could set it somewhere in compose.yml .. will try it
Good luck! :shamrock: Maybe @Jutta Schnabel knows the magic. :magic_wand:
Yes you can! But it's hard, because you will need to have the internal IP of the container.
So I'd advice doing the following:
Execute docker run --rm -it --network <network> bash. The <network> is the one that compose creates for you, name is visible in docker network list
Once you have that shell, run the job, using bootstrap.sh -u <DV-container-IP> dev or whatever persona you want to use (which needs to be available to the container, so you might need to mount it into it before running when you want a custom one)
If you don't want to hop into the DV container to get the IP, you can get that information from docker network inspect <network name>
@Philip Durbin I added notes and ideas in the other topic
I saw! Thanks for that and all of the above! ![]()
^ working on this .. i found the dataverse container IP using "docker network inspect <network name>" .. and docker inspect dataverse gives me the same IP address (as long as the container is running) .. so then run "docker run -e TIMEOUT=10m gdcc/configbaker:unstable bootstrap.sh -u <IP address> dev" ?
@Deirdre Kirmis if you'd like to follow along: #containers > curl DNS broken
@Deirdre Kirmis if you wait some more, I can give you a different image from GHCR.io for you to test (basically we need to wait until we have the notification over at https://github.com/IQSS/dataverse/pull/10414)
okay, but if I were to manually do the bootstrap step (just for a learning experience :big_smile: ) should that command above work? It is giving me errors so I likely have it wrong.
Which one of those... I typed these from my head, so might have done a typo
Oh wait I see now
You're not following the instructions... :see_no_evil: :stuck_out_tongue: :man_teacher:
typical
Please note that you must attach the container to the right network - otherwise Dataverse will not be reachable
You can go for your docker run command, but you need to add the network bit then
@Deirdre Kirmis can you try with this image plz? ghcr.io/gdcc/configbaker:10413-configbaker-alpine-downgrade :fingers_crossed:
trying now ..
:fingers_crossed:
i got the same results, although I likely did something wrong .. i am using the demo tutorial instructions, so i edited compose.yml and replaced with the alpine image URL above and re-ran "docker compose up" .. should I try the docker run command and/or clone the repo and run that way?
Can you please show us a diff?
OK we are getting to a point where it probably is much easier going for a Zoom call
Some live action on screen is probably making debugging easier
it would help, too, if I had any idea what i'm doing :smile:
We're all here to learn
some more than others haha
@Deirdre Kirmis do you want some live debugging action on Zoom?
sure, if you have time, but don't want to be a pain .. if it fixes an issue? :big_smile:
https://fz-juelich-de.zoom.us/j/63165889221?pwd=MlBvL0V0WGM3N2gvamlqcGJuZVF5Zz09
turns out i just put the image name in the wrong spot :sweat_smile: .. it is working! thank you @Oliver Bertuch
Alright we figured out:
alpha tagged image (as we told her in the demo), which dates before Christmas and does not have the backport.gdcc/configbaker:unstable, which contains the fix indeed, BUT there is a gotcha here: the resolution used the search parameter we get from resolv.conf and thus made curl go for dataverse.asu.edu and an external IP, not the internal one.Here's a screenshot of what happens at 2)
image.png
Thanks for being my guinea pig today @Deirdre Kirmis ! Much appreciated you took the time to dig through this!
Happy to help any time! :smile: Thanks for teaching me some docker things!
Good job, team! :tada:
Last updated: Oct 30 2025 at 05:14 UTC