Closed joewiz closed 6 years ago
HI thanks for the input @joewiz, much appreciated, I tried to address your concerns in #29.
If you clone this repo, you ll find a ready to use docker-compose file in it. You don't need to clone the whole repo to use it though, simply copying it is enough.
How do the docker cp commands know which volume(s) exist:eXist corresponds to?
I m not sure i get your question exist:eXist/config/conf.xml
=>
exist:
= name of container eXist/
= name of the install directory as specified in the Dockerfile: ENV EXIST_HOME "/eXist"
config/conf.xml
= filepath inside exist. The command remains the same irrespective of if it points to a volume or not. We would certainly welcome a PR with a link to a good beginners tutorial about docker, i m afraid I m a bit too much out of the loop to know of any one in particular docker run hello-world
used to be a thing. But if you find one that does it for you I d love to hear about it. Is there a specific aspect that you think is missing from the docker docs?
If not, what are the assumed setup steps before docker-compose can be run?
Think of docker-compose as being like a package manager like 'npm' or 'yarn' or maybe like a builder like 'ant' or 'Make'. Each of these require a file located in your projects directory root and you invoke the program from the root directory
Likewise docker-compose requires a file docker-compose.yml. The docker-compose.yml in the repo provides good defaults to you get up and running, I would go as far to suggest it is the quickest and easiest way to run eXist. As @duncdrum suggested, copy the the repos docker-compose,yml plus the .env file into your own project directory and invoke docker-compose from within that directory.
the README states that the compose file declares 2 named volumes (exist-data and exist-config), but the docker cp commands refer to exist:eXist. How do the docker cp commands know which volume(s) exist:eXist corresponds to?
I think @duncdrum clarified this so I won't add to it.
The functional tests can be seen on travis
# CHECK! the abilty to
# - alter a config item in a config file on local disk,
# - copy the altered config file into containers config dir.
# - stop and start the container
# - view changed item taking effect in startup logs
#
# The startup log should show altered shutdown time
- database instance 'exist' will wait 60,000 ms during shutdown
@duncdrum @grantmacken Thank you for the clarifications and additional info!
Following the instructions in the README, I hit a roadblock on the line:
When I ran this after starting the image via the supplied command, I got an error:
Upon further research, I see that when starting docker without a
--name
flag, docker assigns a random name to the container:Here,
inspiring_euclid
is the container's randomly-generated name. To stop this container you'd need to use this name or the container ID (9b875fa2e58e
):Given this, I think the instructions would generally work if modified to include a
--name exist
parameter todocker run
:Next, following the directions in the README under "Development use via
docker-compose
", I think new users will hit the same thing I did:Is the idea that in order to use docker-compose you should first clone the
docker-existdb
repo, cd into it, and then run this command? If not, what are the assumed setup steps before docker-compose can be run?Next, the README states that the compose file declares 2 named volumes (
exist-data
andexist-config
), but thedocker cp
commands refer toexist:eXist
. How do thedocker cp
commands know which volume(s)exist:eXist
corresponds to?Lastly, I'd be grateful for any opinionated links to tutorials for becoming proficient with docker and getting the most out of this image.