|
|
|
|
@@ -11,7 +11,9 @@ password are required), run:
|
|
|
|
|
On success, an "hpr_generator" directory will be created in the folder from
|
|
|
|
|
which the clone command was executed containing a local copy of the git repository.
|
|
|
|
|
|
|
|
|
|
# Install required Perl modules
|
|
|
|
|
# Building on local system
|
|
|
|
|
|
|
|
|
|
## Install required Perl modules
|
|
|
|
|
|
|
|
|
|
Installing the Perl modules is the most finicky part of the installation process.
|
|
|
|
|
The needed Perl modules can be found using the operating system's package
|
|
|
|
|
@@ -34,7 +36,7 @@ apt install libconfig-std-perl \
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Using CPAN to install the modules
|
|
|
|
|
### Using CPAN to install the modules
|
|
|
|
|
|
|
|
|
|
A cross platform method to install the needed modules is the Perl CPAN application.
|
|
|
|
|
Make sure that the [gcc](https://www.gnu.org/software/gcc/),
|
|
|
|
|
@@ -55,7 +57,7 @@ cpan Tie::DBI
|
|
|
|
|
cpan Text:CSV_XS
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Testing for Perl module dependencies
|
|
|
|
|
### Testing for Perl module dependencies
|
|
|
|
|
|
|
|
|
|
A bash script is included in the utils directory that will list the Perl modules used by the site-generator and report whether the modules are installed on the current OS.
|
|
|
|
|
|
|
|
|
|
@@ -65,6 +67,39 @@ It can be run from any directory. To run from the utils directory:
|
|
|
|
|
./check-dependencies.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# Building with Docker
|
|
|
|
|
|
|
|
|
|
The docker file will copy the local version of the site-generator program, the templates directory, the LICENSE file,
|
|
|
|
|
and the site.cfg file into the Docker image. For the docker image to run correctly it needs access to your local
|
|
|
|
|
hpr.db file and the output directory (defaults to "public_html"). The default site.cfg assumes the hpr.db is located
|
|
|
|
|
in the directory from which the site-generator is run. There are two ways to make the db available to the container:
|
|
|
|
|
|
|
|
|
|
* Put the hpr.db file in the public_html folder and modify the driver option under the [DBI] section of the site.cfg to:<br>
|
|
|
|
|
```driver: dbi:SQLite:public_html/hpr.db```
|
|
|
|
|
* mount the hpr.db file into the container when starting up the container with the -v option: <br>
|
|
|
|
|
```-v <path to db directory>/hpr.db:/usr/src/app/hpr.db```
|
|
|
|
|
|
|
|
|
|
Build the image by running the following command from the hpr_generator directory:
|
|
|
|
|
```docker build -t hpr/site-generator .```
|
|
|
|
|
|
|
|
|
|
The first build will take a while. It must pull down the base container, perl-latest, and then pull down and build the
|
|
|
|
|
various Perl modules from CPAN. After the initial build, if you have modified your site.cfg file, templates dir, or the
|
|
|
|
|
site-generator program itself, builds will be very quick.
|
|
|
|
|
|
|
|
|
|
If the build fails, it is often from a CPAN module failing to download and install. Try running the Docker build command again.
|
|
|
|
|
|
|
|
|
|
## Running the container
|
|
|
|
|
|
|
|
|
|
When runing the Docker image, your local output directory (typically public_html) must be mounted into the container using
|
|
|
|
|
the -v option. If you are using the default path for the hpr.db, then the local hpr.db file must also be mounted into the image.
|
|
|
|
|
The following is an example of running the site-generator with default locations from the hpr_generator directory:
|
|
|
|
|
```
|
|
|
|
|
docker run \
|
|
|
|
|
-v "$(pwd)/public_html":/usr/src/app/public_html \
|
|
|
|
|
-v "$(pwd)/hpr.db":/usr/src/app/hpr.db \
|
|
|
|
|
hpr/site-generator --help
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
# Create the HPR database
|
|
|
|
|
|
|
|
|
|
The hpr_generator relies on information from a database to generate many of the
|
|
|
|
|
|
I think this should be
docker buildinstead ofdocker runGood catch norrist. Thanks!