[DEPRECATED]
This repository is no longer maintained.
Please contact Specify support at "support@specifysoftware.org" 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 support@specifysoftware.org. 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

