You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ClinicalTrialsDataProcessing/README.md

61 lines
2.0 KiB
Markdown

# ClinicalTrialsDataProcessing
This is used to build tools which process and standardize the data.
More data later.
# proposed architecture:
AACT Dockerfile #when built on its own, allows for the creation of the AACT database.
- Should create appropriate users.
-
ClinicalTrialHistory Dockerfile #inherits from AACT (multistage builds?) and adds initialization steps to the database.
- adds schemas, tables, and views for both http requests and parsed history tables.
- adds connection roles
- adds connection users
ClinicalTrialDataProcessing docker-compose.yaml #deploys a ClinicalTrialHistory container, pgadmin4, and eventually the downloading program/environment.
# Background on Docker
Docker uses the following flow
1. configuration using `docker-compose.yaml` or a `Dockerfile`
2. `docker build .` to generate an image
3. `docker run xxxxxx` to take the image and create a container.
- when the container is created, it starts, running commands as configured in the dockerfile.
- Consequently, the AACT database image when run must initialize the postgres db, then run the initalization details.
- Here is where bind mounts come into play.
## Multistage builds
https://stackoverflow.com/questions/53659993/docker-multi-stage-how-to-split-up-into-multiple-dockerfiles
https://docs.docker.com/develop/develop-images/multistage-build/
Basically
## Dockerfile vs docker-compose.yaml
A `Dockerfile` is used to create images.
A `docker-compose.yaml` is used to automate the deployment of containers.
## Types of storage
### COPY/ADD (Dockerfile)
In a dockerfile, this adds a file permanently to the image.
This adds files one way to or from the container when initialized.
### Volumes (docker-compose.yaml && Dockerfile)
Useable in both docker-compose and Dockerfile's, this creates a permanent storage.
It can be maintained by docker or stored in a particular location.
Good for longer term storage such as databases.
### Bind mounts (docker-compose.yaml)
Bind mounts are used to make a host filesystem resource
available