Skip to content

cames-be/fhir-ig-publisher-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Image for the FHIR IG Publisher

Contains the environment and required dependencies for running the FHIR IG Publisher inside a Docker container. Included dependencies in the container:

  • Java 11 (OpenJDK)
  • Ruby
  • Jekyll
  • Node.js
  • Npm
  • FSH Sushi

Background

The image contains all dependencies required to run the FHIR IG Publisher. Once the container has been built and started, it will continue to run until it is stopped. This means that the publisher script can be run again and again against an IG as changes are made without the container needing to be restarted.

The ExampleIG Implementation Guide and its location under sushi/ExampleIG is provided as an example and not meant to represent an official Implementation Guide. It was created by issuing sushi --init in the main directory. Modify the following instructions as necessary to match the location of your Implementation Guide. Create and modify your IG as needed.

After cloning the repository, the publisher.jar will need to be loaded into the sushi/ExampleIG/input-cache folder. This can be done by executing either the sushi/ExampleIG/_updatePublisher.bat script, the sushi/ExampleIG/_updatePublisher.sh script, or by downloading the publisher.jar from https://github.com/HL7/fhir-ig-publisher/releases and copying it into the sushi/ExampleIG/input-cache folder.

Build

To build the container after cloning the repo to a local directory of your choice, cd into the main directory, and issue docker compose up -d This will start the container which will not stop until a docker compose down command is issued.

Publish

After the container has been started, the IG can be published by issuing the following command

docker exec -w /data/ExampleIG/ -it fhir_ig_publisher ./_genonce.sh

This is performing the following:

  • docker exec - executes the commands that follow against the container
  • -w /data/ExampleIG/ - sets the working directory to /data/ExampleIG/ This should be modified to match the IG directory
  • -it fhir_ig_publisher - issues the command against the running fhir_ig_publisher container
  • ./_genonce.sh - runs the _genonce.sh script found in the /data/ExampleIG/ folder set by the -w command, against the fhir_ig_publisher container set by the -it command

Note This command is for the example IG in this repo and should be modified as needed. If a different IG is used, then the working directory path /data/ExampleIG/ will need to be modified to match the working directory of the desired IG. In addition a different script other than _genonce.sh can be run.

Windows WSL Performance

There is a known performance issue when running WSL and using Windows Defender as an anti-virus where publishing can take an exorbitant amount of time.

Note This does not happen on other operating systems or Windows systems that use other anti-virus software.

This is an issue specific to Windows Defender and can cause the publisher to take 20+ minutes since Windows Defender does not play well with WSL and Docker. To reduce the time, go to Windows Security -> Virus & Threat Protection -> Virus & Threat Protection settings -> Manage Settings -> Exclusions -> Add or Remove Exclusions. Add the following Exclusions:

  • wsl.exe
  • wslhost.exe
  • vmwp.exe
  • VmmemWSL

You may need to restart after making changes but after the publish should take a minimal amount of time.

About

Docker Image for FHIR IG Publisher

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published