diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..7f80558589a0b3db019323aef5858babef3a930f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +/etl/credentials/db_credentials*.yml +/etl/stg/archive/* +/etl/prs/fits/cubes/* +/etl/prs/fits/moments/* +/etl/prs/fits/ratios/* +/etl/prs/fits/grids/* +/etl/mdl/radmc_files/* +/etl/mdl/scratches/* +/etl/prs/output/* +/etl/*.sif \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..b0c98fa13d39705abef23813248c8fbacc2e88e0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM python:3.9-slim + + +# STEP 1) Setting up environment +# apt packages +RUN apt-get update && \ + apt-get --yes upgrade && \ + apt-get install --yes libgomp1 && \ + apt-get install --yes postgresql-client && \ + apt-get install --yes --reinstall build-essential && \ + apt-get -y install curl vim less nano git && \ + apt-get -y install zip unzip && \ + apt-get clean + +WORKDIR /usr/src/etl +RUN python -m pip install --upgrade pip +COPY etl/requirements.txt . +RUN pip install -r requirements.txt + +RUN mkdir /sak_user +# RUN /usr/sbin/usermod -d /sak_user root +RUN HOME=/sak_user +COPY documentation/radmc3d_install.sh . +RUN chmod 755 radmc3d_install.sh +RUN HOME=/sak_user;./radmc3d_install.sh +ENV PATH="/sak_user/bin:${PATH}" +ENV PYTHONPATH="/sak_user/bin/python:${PYTHONPATH}" +RUN chmod 755 /sak_user/bin/radmc3d + +# STEP 2) Bundling app +COPY etl . + +CMD python main.py \ No newline at end of file diff --git a/apptainer.def b/apptainer.def new file mode 100644 index 0000000000000000000000000000000000000000..597e8c3732bf4cf41d499bb5a638e84dbe50f7df --- /dev/null +++ b/apptainer.def @@ -0,0 +1,7 @@ +Bootstrap: docker +From: postgres:14.1-alpine + +%environment +export POSTGRES_DB=$DB_NAME +export POSTGRES_USER=$DB_USER +export POSTGRES_PASSWORD=$DB_PASS diff --git a/create_apptainer_image_file.sh b/create_apptainer_image_file.sh new file mode 100644 index 0000000000000000000000000000000000000000..724dcb18824012e9a8b0eb7c43a28a8de87d2ec3 --- /dev/null +++ b/create_apptainer_image_file.sh @@ -0,0 +1,3 @@ +rm swiss_army_knife_latest.sif +singularity pull --disable-cache docker://git.ia2.inaf.it:5050/andrea.giannetti/swiss_army_knife + diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e33c742758319eb7e63a0ce5fe9a32288988b14f --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,36 @@ +version: '3.8' +services: + db: + image: postgres:14.1-alpine + container_name: db_container_sak + restart: always + environment: + - POSTGRES_DB=$DB_NAME + - POSTGRES_USER=$DB_USER + - POSTGRES_PASSWORD=$DB_PASS + ports: + - '31000:5432' + volumes: + - db:/var/lib/postgresql/data + networks: + - sak_network + + etl: + build: + dockerfile: Dockerfile + container_name: 'etl_sak' + image: 'sak_etl' + depends_on: + - db + stdin_open: true + tty: true + networks: + - sak_network + volumes: + - ./etl:/usr/src/etl +volumes: + db: + driver: local +networks: + sak_network: + name: 'sak_app_network' \ No newline at end of file diff --git a/documentation/radmc3d_install.sh b/documentation/radmc3d_install.sh new file mode 100644 index 0000000000000000000000000000000000000000..f119cb78a61c3bbd56dc9e0fbc3158ef0c63c61a --- /dev/null +++ b/documentation/radmc3d_install.sh @@ -0,0 +1,28 @@ +#!/bin/bash +# Set PYCHARM_HOME, INSTALL_DEPENDENCIES environment variable +PYCHARM_HOME=${PYCHARM_HOME:=$HOME} +INSTALL_DEPENDENCIES="${INSTALL_DEPENDENCIES:=true}" +echo $PYCHARM_HOME +cd $PYCHARM_HOME +export RADMC_HOME=$PYCHARM_HOME/radmc3d-2.0 +if [[ ! -d "$RADMC_HOME" ]] +then + echo RADMC not found, cloning into "$(pwd)" + git clone https://github.com/dullemond/radmc3d-2.0.git +fi + +if $INSTALL_DEPENDENCIES +then + apt-get install -y gfortran +fi + +cd $RADMC_HOME/src +make +echo "y\n y\n"| make install + +# Add this to the .bashrc configuration file (or equivalent) +export PATH=$HOME/bin:$PATH +export PYTHONPATH=$HOME/bin/python:$PYTHONPATH + +cd $RADMC_HOME/python/radmc3dPy +python setup.py install