[DEPRECATED]
This repository is no longer maintained.
Please contact Specify support at "[email protected]" for up-to-date Docker deployment options.Dockerized version of Specify 7.5.0 and Web Portal 2.0.
The Specify Collections Consortium is funded by its member institutions. The Consortium web site is: https://www.specifysoftware.org
Specify 7 Copyright © 2020 Specify Collections Consortium. Specify comes with ABSOLUTELY NO WARRANTY. This is free software licensed under GNU General Public License 2 (GPL2).
Specify Collections Consortium
Biodiversity Institute
University of Kansas
1345 Jayhawk Blvd.
Lawrence, KS 66045 USA
-
Install Docker Desktop (macOS, Linux, Windows) and make sure it is running.
-
Download this repository:
- You can either press the button at the top right corner of this page and then press
Download ZIP, unzip the downloaded file and place it into a convenient location. - OR install Git, open terminal, navigate to a convenient location and run the following command.
git clone https://github.com/specify/specify7-docker.git
- You can either press the button at the top right corner of this page and then press
-
If you want to use your own database with specify7, replace
data/database.sqlwith an export of your database. Be sure to name itdatabase.sql. Instructions on how to create a backup of your database can be found here. -
If you want to use your own data for Web Portal, replace
data/export.zipwith your export file. Be sure to name itexport.zip. You can use the Specify Data Export tool to create a Web Portal export zip file (see the Specify 6 Data Export documentation). -
[For Windows hosts only] Follow these instructions in order to avoid getting Drive-related error messages:
- Press on the arrow-shaped button in your Start Menu.
- Find the docker logo and click on it.
- Select
Settingsin the list of options. - Press on the
Resourcestab. - Press on the
File Sharingsubmenu. - Select the drive where your
specify7-dockerfolder is located (It is driveCin most cases). - Press
Apply & Restartand wait for Docker to fully reboot (as shown by the indicator in the lower-left corner of the window).
-
Build the Docker image and start the container:
- Open the terminal (or Command Prompt) in the
specify7-dockerfolder (usecd specify7-dockerto open the directory). - Run the
docker-compose up -dcommand (you may need to run this command as a root user depending on the system). - The building process would take about 15 minutes.
- Open the terminal (or Command Prompt) in the
Specify 7 instance should now be available at http://localhost:8080. The login for the default database is demouser and the password is also demouser.
Web Portal instance should be available at http://localhost:80.
You can build containers without Specify7. In such a case, you can comment out respected sections for mariadb and specify7 in docker-compose.yml as well as the networks part.
You can build containers without Web Portal. In such case, you can comment out the webportal section in docker-compose.yml.
If you want to run Specify7 with a local SQL server, follow these instructions. We recommend doing that when Docker container would be used in production systems.
- To stop the container:
docker-compose stop
- To destroy the container:
docker-compose down
- To rebuild the container:
You will have to rebuild the container after new release of Specify 6 or after making any changes to files in the
docker-compose up -d --build
./dataor./specify7_configdirectories for those changes to be reflected.
If you have problems with building containers or have any questions, please open an issue in this repository or send an email to [email protected]. It would help us in solving your issues if you were to attach the output of all the commands you run in the terminal/command prompt.
Open your terminal/command line and execute the following command to enable debugging (you may need to run these commands as a root user depending on the system):
docker exec -it specify7-docker_specify7_1 cp /usr/local/specify_config/enable_debug.py /usr/local/specify7/specifyweb/settings/debug.py
docker restart specify7-docker_specify7_1And this one to disable debugging:
docker exec -it specify7-docker_specify7_1 cp /usr/local/specify_config/disable_debug.py /usr/local/specify7/specifyweb/settings/debug.py
docker restart $specify7-docker_specify7_1Replace specify7-docker_specify7_1 with the name of your specify7 container. You can see it in the Docker Dashboard.
To run a newer version of Specify7 make sure the database you want to connect to has been upgraded to the new version of Specify. Then, run the following commans
-
Pull the changes from the GitHub repository:
git pull
-
Rebuild the container:
docker-compose up -d --build
- If you get the following error:
ERROR: Service 'mariadb' failed to build: Get https://registry-1.docker.io/v2/library/mariadb/manifests/latest: unauthorized: incorrect username or password, rundocker logoutin the command line.
-
Right now, Specify7 container has an Apache webserver, Web Portal container uses Nginx and Web Asset Server is running Bottle. Ideally, there should be a separate container for Nginx, and Specify 7, Web Asset Server, and Web Portal should all connect to it.
-
We can uninstall most of the packages from the Specify7 and Web Portal containers after the build process is over in order to reduce container size

