This page aims to provide a quick start for standing up an ERDDAP server using the ERDDAP Docker image and a few IOOS Gold Standard Example datasets. You can view this setup live at https://standards.sensors.ioos.us/erddap/index.html, with dataset documentation at https://ioos.github.io/ioos-metadata/gold-standard-examples.html.
This getting started page provides instructions and links to external resources for setting up an ERDDAP server using a single Docker image. Multi-node Kubernetes deployments are linked to under the Other deployment options sidebar.
While this is intended to help get you started quickly, it is highly recommended that any ERDDAP administrator becomes comfortable with the source ERDDAP documentation at: https://coastwatch.pfeg.noaa.gov/erddap/download/setup.html
Requirements
There are a few items you need to have installed on your system to deploy ERDDAP using the https://github.com/ioos/erddap-gold-standard repository.
- Git: https://git-scm.com/
- Docker: https://www.docker.com/
- (optional) Docker compose: https://docs.docker.com/compose/install/
Step 1: Download this Repo
Create a folder to clone the ERDDAP repository into, or just into your home directory. For more help on cloning repositories available on GitHub, please check here.
$ git clone https://github.com/ioos/erddap-gold-standard.git
Now let’s have a look at what we downloaded.
$ cd erddap-gold-standard/
$ ls -Ap
.env.template .gitignore DasDds.sh docker-compose.yml erddap_utils.sh README.md
.git/ ArchiveADataset.sh datasets/ erddap/ GenerateDatasetsXml.sh
Step 2: Start the Docker daemon/engine
- Windows:
- Search for Docker, and select Docker Desktop in the search results.
- Linux:
sudo systemctl start docker
- Mac:
- Double-click Docker.app in the Applications folder to start Docker.
Step 3: Deploy ERDDAP locally
- Run it!
$ cd erddap-gold-standard/ $ docker run --rm \ --name erddap_gold_standard \ -p 8080:8080 \ -v $(pwd)/erddap/conf/config.sh:/usr/local/tomcat/bin/config.sh \ -v $(pwd)/erddap/conf/robots.txt:/usr/local/tomcat/webapps/ROOT/robots.txt \ -v $(pwd)/erddap/content:/usr/local/tomcat/content/erddap \ -v $(pwd)/erddap/data:/erddapData \ -v $(pwd)/datasets:/datasets \ axiom/docker-erddap:2.23-jdk17-openjdk
get
axiom/docker-erddap:2.23-jdk17-openjdk
or the latest one available from axiom docker-erddap.or, copy the
.env.template
file to.env
, and then rundocker-compose
:$ cp .env.template .env $ docker-compose up -d
- Remember, when you run ERDDAP from the Docker container, various configuration files will be mounted into the
container from your local system. Review the various mount points (
-v
flags in yourdocker run
/docker-compose.yml
) to ensure you know where the appropriate files are coming from and going to.
- Remember, when you run ERDDAP from the Docker container, various configuration files will be mounted into the
container from your local system. Review the various mount points (
-
You should be able to see something similar to the following:
Creating network "erddap-gold-standard_default" with the default driver Pulling erddap (axiom/docker-erddap:2.23-jdk17-openjdk)... 2.23-jdk17-openjdk: Pulling from axiom/docker-erddap Digest: sha256:1ae5c7637ba14db60c5a0cd143e9fc1eb4115cdd8f030f40b22d1fdbea919ba3 Status: Downloaded newer image for axiom/docker-erddap:2.23-jdk17-openjdk Creating erddap_gold_standard ... done
-
Connecting to your new ERDDAP server:
In your web browser navigate to http://localhost:8080/erddap/index.html. You should now see the standard ERDDAP Website:
You can monitor http://localhost:8080/erddap/status.html to see the status of your ERDDAP.
Step 4: Next Steps
Once you have successfully deployed an ERDDAP using the Docker instance, it’s time to start testing out what you can do. Below are links to a few of the topics that might be of interest:
- Adding datasets to ERDDAP - How to add new datasets to ERDDAP
- Customizing your ERDDAP - How to configure ERDDAP using environment variables.
- Updating ERDDAP - How to update ERDDAP when using Docker.
- Useful utilities - Examples of a few other useful commands.