Skip to content

Running in docker...

Andrew Benedict Wallace edited this page Feb 1, 2019 · 8 revisions

https://github.com/RepoCamp/ucla2019 includes a docker-compose setup based on the one used in Californica, with a few customizations for this workshop.

  1. Install docker:
    • mac: brew cask install docker
    • linux: Use the official instructions to install from Docker's repository (the versions in standard repos can be fairly out of date).
    • windows: ...
  2. Launch docker - varies by OS - you should have a Docker Desktop service running in your status bar once docker is launched.
  3. Give docker more memory
    • mac: [Docker menu] >> Preferences >> Advanced, then [Docker menu] >> Restart
  4. Follow the californica docker setup info here https://github.com/UCLALibrary/californica#getting-started
    git clone https://github.com/RepoCamp/ucla2019.git
    cd ucla2019
    docker-compose run web bundle exec rake db:setup
    docker-compose up
    
  5. Follow the building from scratch info here https://github.com/RepoCamp/ucla2019/wiki/Building-from-Scratch

Where things are

You will use different addresses to reach the same service depending on whether you are in the host system, or inside one of your containers. This information can be found in the docker-compose.yml file. For example:

  fcrepo:
    image: nulib/fcrepo4:4.7.5
    ports:
      - "8984:8080"

creates a service called fcrepo based on a docker image that runs fedora on port 8080. Thus, from another container its address is http://fcrepo:8080/. Since the 'ports' section maps it to port 8984, you can reach it from your host system at http://localhost:8984. If you leave out the 'ports' section, the service would be inaccessible from outside docker.

The most useful service addresses here are:

Service from host from container
solr http://localhost:8983/solr/#/ http://solr:8983/solr/hyrax
fedora http://localhost:8984/rest http://fcrepo:8080/rest
test solr http://localhost:8985/solr/#/ http://solr_test:8983/solr/hyrax
test fedora http://localhost:8986/rest http://fcrepo_test:8080/rest

(I've shown URL for the solr web console from the host, but its API endpoint from the container, but either one could be reached in the other context)