diff --git a/.eslintignore b/.eslintignore index e69de29b..92920aa7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -0,0 +1 @@ +mongo-init.js \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..98623b4c --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +mongo-init.js diff --git a/Dockerfile.dev b/Dockerfile.dev index ce072618..a8f56aee 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,5 +1,6 @@ FROM node:18-alpine WORKDIR /REMS -COPY . . +COPY --chown=node:node . . RUN npm install +EXPOSE 8090 CMD ./dockerRunnerDev.sh \ No newline at end of file diff --git a/README.md b/README.md index 0622b13a..17ef1973 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,25 @@ You can find complete end-to-end full-stack set up guides for DRLS REMS at the f ``` 2. Run dockerRunner.sh script ```bash - ./dockerRunner.sh + npm run start ``` +## Running the Mongo DB instance +1. On the first run use the following command to create a docker mongo instance: + ```bash + docker run --name rems_local_pims_remsadmin_mongo --expose 27017 -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME='rems-admin-pims-root' -e MONGO_INITDB_ROOT_PASSWORD='rems-admin-pims-password' -v rems_local_pims_remsadmin_mongo:/data/db -v "$(pwd)"/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js mongo + ``` + To stop the running container, simply use ctrl + c + + +2. On subsequent runs use the following command to start the existing mongo container: + ```bash + docker start rems_local_pims_remsadmin_mongo + ``` + To stop the running container, simply run the below command + ```bash + docker stop rems_local_pims_remsadmin_mongo + ``` # REMS Administrator NOTE: The REMS Administrator is a work in progress. diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index 475948e6..53b410ed 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -16,13 +16,10 @@ services: context: ../test-ehr dockerfile: Dockerfile.keycloak - # Create test ehr container test-ehr: - # Name of our service container_name: rems_dev_test-ehr ports: - # Port binding to host from docker container - - '8080:8080' # Bind port 3000 of host to 3000 of container + - '8080:8080' - "8081:8081" environment: - DOCKER_PROFILE=true @@ -39,6 +36,19 @@ services: extra_hosts: - "host.docker.internal:host-gateway" + pims_remsadmin_mongo: + image: mongo + container_name: rems_dev_pims-remsadmin-mongo + ports: + - '27017:27017' + environment: + MONGO_INITDB_ROOT_USERNAME: rems-admin-pims-root + MONGO_INITDB_ROOT_PASSWORD: rems-admin-pims-password + volumes: + - pims_remsadmin_mongo:/data/db + - ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js + + # Create crd container # crd: # # Name of our service @@ -63,9 +73,7 @@ services: # - rems_dev_crd-operations-build:/CRD/operations/build # - rems_dev_crd-resources-build:/CRD/resources/build - # Create crd request generator container crd-request-generator: - # Name of our service build: context: ../crd-request-generator dockerfile: Dockerfile.dev @@ -73,8 +81,7 @@ services: environment: - REACT_APP_REMS_CONFIG=true ports: - # Port binding to host from docker container - - "3000:3000" # Bind port 3000 of host to 3000 of container + - "3000:3000" - "3001:3001" volumes: - rems_dev_crd-request-generator-sync:/home/node/app/crd-request-generator:nocopy # nocopy is important @@ -83,16 +90,13 @@ services: - rems_dev_crd-request-generator-build:/home/node/app/crd-request-generator/build - rems_dev_crd-request-generator-logs:/home/node/app/crd-request-generator/logs - # Create dtr container dtr: - # Name of our service build: context: ../dtr dockerfile: Dockerfile.dev container_name: rems_dev_dtr ports: - # Port binding to host from docker container - - "3005:3005" # Bind port 3000 of host to 3000 of container + - "3005:3005" - "3006:3006" volumes: - rems_dev_dtr-sync:/home/node/app/dtr:nocopy # nocopy is important @@ -100,18 +104,17 @@ services: - rems_dev_dtr-databaseData:/home/node/app/dtr/databaseData - rems_dev_dtr-logs:/home/node/app/dtr/logs - # Create rems container rems-administrator: - # Name of our service build: context: '.' dockerfile: Dockerfile.dev - container_name: rems_dev_rems + container_name: rems_dev_rems-administrator ports: - # Port binding to host from docker container - - "9020:8090" # Bind port 3000 of host to 3000 of container + - "8090:8090" volumes: - rems_dev_rems-sync:/REMS:nocopy # nocopy is important + - rems_dev_rems-nodeModules:/REMS/node_modules + - rems_dev_rems-logs:/REMS/logs # pharmacy-information-system: # Name of our service # build: @@ -138,12 +141,13 @@ services: dockerfile: Dockerfile.dev container_name: rems_dev_pims ports: - - "4200:3000" #4200 was the frontend port for the old pims + - "5050:5050" + - "5051:5051" volumes: - rems_dev_pims-sync:/home/node/app/pims:nocopy - rems_dev_pims-nodeModules:/home/node/app/pims/node_modules - # - rems_dev_pims-backend-nodeModules:/home/node/app/pims/backend/node_modules - rems_dev_pims-logs:/home/node/app/pims/logs + # pharmacy-information-system-database: # Name of our service # image: mongo # container_name: rems_dev_pharmacy-information-system-database @@ -172,6 +176,7 @@ volumes: external: true rems_dev_keycloak-data: + pims_remsadmin_mongo: rems_dev_test-ehr-gradle: rems_dev_test-ehr-bin: rems_dev_test-ehr-build: @@ -192,6 +197,8 @@ volumes: rems_dev_dtr-nodeModules: rems_dev_dtr-databaseData: rems_dev_dtr-logs: + rems_dev_pims-logs: # rems_dev_pims-database: rems_dev_pims-nodeModules: # rems_dev_pims-backend-nodeModules: + rems_dev_rems-nodeModules: + rems_dev_rems-logs: - rems_dev_pims-logs: # rems_dev_pims-database: diff --git a/docker-sync.yml b/docker-sync.yml index 0e24cbfa..acc3d17a 100644 --- a/docker-sync.yml +++ b/docker-sync.yml @@ -20,6 +20,7 @@ syncs: rems_dev_rems-sync: src: '.' + sync_excludes: ['node_modules', 'logs'] rems_dev_pharmacy-information-system-sync: src: '../pharmacy-information-system' @@ -27,4 +28,4 @@ syncs: rems_dev_pims-sync: src: '../pims' - sync_excludes: ['node_modules', 'backend/node_modules', 'logs'] \ No newline at end of file + sync_excludes: ['node_modules', 'logs'] \ No newline at end of file diff --git a/mongo-init.js b/mongo-init.js new file mode 100644 index 00000000..657e799d --- /dev/null +++ b/mongo-init.js @@ -0,0 +1,11 @@ +// Create Databases +const dbPims = db.getSiblingDB('pims'); +const dbRemsAdmin = db.getSiblingDB('remsadmin'); + +// Create Collections +dbPims.createCollection('pims-tmp'); +dbRemsAdmin.createCollection('remsadmin-tmp'); + +// // Insert document to ensure db/collection is created +// dbPims.pimscollection.insertOne({name: 'Hello World!'}) +// dbRemsAdmin.remsadmincollection.insertOne({name: 'Hello World Again!'}) \ No newline at end of file