From 2f28666efaac80c4cd7e9f6d879dc4c20803e9a6 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sat, 29 Dec 2018 18:22:42 +0000 Subject: [PATCH] Initial work done on Docker composition of TT and MariaDB together. --- Dockerfile | 8 +++++++- WEB-INF/templates/footer.tpl | 2 +- docker-compose.yml | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile index 37cf6bfe..1cbf6afc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,5 +25,11 @@ RUN apt-get install libldap2-dev -y \ # The above does not work. Files are removed, but # image files (zipped or not) are not getting smaller. Why? +# Copy application source code to /var/www/html/. COPY . /var/www/html/ - +# Create configuration file. +RUN cp /var/www/html/WEB-INF/config.php.dist /var/www/html/WEB-INF/config.php +# Replace DSN value to something connectable to a Docker container running mariadb. +RUN sed -i "s|mysqli://root:no@localhost/dbname|mysqli://anuko_user:anuko_pw@anuko_sql/timetracker|g" /var/www/html/WEB-INF/config.php +# Note that db is defined as anuko_sql/timetracker where anuko_sql is service name and timetracker is db name. +# See docker-compose.yml for details. diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 9a62b145..f2ab255e 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.36.4694 | Copyright © Anuko | +  Anuko Time Tracker 1.18.36.4695 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..b5ecef92 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,26 @@ +version: '3.7' + +services: + # anuko_tt is a web application built as per Dockerfile specification. + anuko_tt: + build: . + image: anuko_timetracker:dev + container_name: anuko-timetracker + # Use localhost:8080 to connect to timetracker via browser. + ports: + - "8080:80" + + # anuko_sql is a mariadb instance to which timetracker connects. + # Connect parameters are also specified in timetracker Dockerfile after + # creation of its configuration file. Specifically, we replace + # user name, password, service name (aka resolvable to IP server name + # where mariadb runs), and database name there from the defaults. + # Apparently, these two sets of credentials must match for successful connect. + anuko_sql: + image: "mariadb:latest" + container_name: anuko-sql + environment: + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + MYSQL_DATABASE: timetracker + MYSQL_USER: anuko_user + MYSQL_PASSWORD: anuko_pw -- 2.20.1