FROM debian:latest
MAINTAINER steven velozo

RUN echo "...installing debian dependencies..."
RUN apt update
RUN apt install vim curl tmux -y

RUN echo "Building service image..."

RUN echo "...configuring mariadb (mysql) server..."
RUN apt install default-mysql-server default-mysql-client -y
RUN sed -i "s|bind-address|#bind-address|g" /etc/mysql/mariadb.conf.d/50-server.cnf
COPY ./debug/model/manual_scripts/MySQL-Security.sql /root/MySQL-Configure-Security.sql
COPY ./debug/model/manual_scripts/MySQL-Laden-Entry-ServicesOnly.sh /usr/bin/MySQL-Laden-Entry-NoSudo.sh
RUN ( mysqld_safe --skip-grant-tables --skip-networking & ) && sleep 5 &&  mysql -u root < /root/MySQL-Configure-Security.sql

# Import the initial database
COPY ./debug/model/sql_create/BookStore-CreateDatabase.mysql.sql /root/MySQL-Create-Databases.sql
COPY ./debug/model/sql_create/BookStore-CreateAndPopulateTables.sql /root/BookStore-CreateAndPopulateTables.sql
RUN service mariadb restart && sleep 5 && mysql -u root -p"123456789" -e "CREATE DATABASE bookstore;"
RUN echo "...creating and populating database..."
RUN service mariadb restart && sleep 5 && mysql -u root -p"123456789" bookstore < /root/MySQL-Create-Databases.sql
RUN service mariadb restart && sleep 5 && mysql -u root -p"123456789" bookstore < /root/BookStore-CreateAndPopulateTables.sql
RUN echo "...database creation and population complmete."

RUN echo "...mapping library specific volumes..."

VOLUME /retold-data-service

SHELL ["/bin/bash", "-c"]

RUN echo "...installing node version manager..."

# Because there is a .bashrc chicken/egg problem, we will create one here to simulate logging in.  This is not great.
RUN touch /root/.bashrc && chmod +x /root/.bashrc
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash

ENV NODE_VERSION=14
ENV NVM_DIR=/root/.nvm
RUN . "$NVM_DIR/nvm.sh" && nvm install ${NODE_VERSION}
RUN . "$NVM_DIR/nvm.sh" && nvm use v${NODE_VERSION}
RUN . "$NVM_DIR/nvm.sh" && nvm alias default v${NODE_VERSION}
ENV PATH="/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}"
RUN . /root/.nvm/nvm.sh && source /root/.bashrc && node --version
RUN . /root/.nvm/nvm.sh && npm --version

WORKDIR /retold-data-service

COPY ./debug/model/manual_scripts/MySQL-Laden-Entry-ServicesOnly.sh /root/MySQL-Laden-Entry-ServicesOnly.sh
ENTRYPOINT ["/root/MySQL-Laden-Entry-ServicesOnly.sh"]
