blob: 555e234883db5fa101503c0c52f758e3282e44e2 [file] [log] [blame]
#using multi-stage
# mariadb use docker-entrypoint
FROM mysql:latest as builder
# That file does the DB initialization but also runs mysql daemon, by removing the last line it will only init
RUN ["/bin/sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin/docker-entrypoint.sh"]
#
# check where and what configurations are read with e.g.
# docker-compose run db /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
# docker run <image> /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
ARG DB_CONTEXT
ARG MYSQL_DATABASE
ARG MYSQL_ROOT_PASSWORD
ARG MYSQL_RANDOM_ROOT_PASSWORD
ARG MYSQL_USER
ARG MYSQL_PASSWORD
ARG MYSQL_ONETIME_PASSWORD
# mount in docker-compose
ADD #var("DB_CONTEXT:-.")/mysql/conf/my.cnf /etc/
# for logs
RUN mkdir /mysql
RUN chmod a+w /mysql
# for sql
RUN mkdir /data
RUN chmod a+w /data
# copy
ADD #var("DB_CONTEXT:-.")/mysql/init/*.sql /docker-entrypoint-initdb.d/
# to check what is needed
ADD ./target/generated-sql/torque/mysql/*.sql ./data/
ADD ./docs/sample-mysql-data/*.sql ./data/
# required, to create
ENV DB_CONTEXT ${DB_CONTEXT}
ENV MYSQL_DATABASE ${MYSQL_DATABASE}
ENV MYSQL_ROOT=root
ENV MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
ENV MYSQL_USER=${MYSQL_USER}
ENV MYSQL_PASSWORD=${MYSQL_PASSWORD}
ENV MYSQL_HOST=
ENV MYSQL_RANDOM_ROOT_PASSWORD ${MYSQL_RANDOM_ROOT_PASSWORD}
ENV MYSQL_ONETIME_PASSWORD=${MYSQL_ONETIME_PASSWORD}
# Need to change the datadir to something else that /var/lib/mysql because the parent docker file defines it as a volume.
# https://docs.docker.com/engine/reference/builder/#volume :
# Changing the volume from within the Dockerfile: If any build steps change the data within the volume after
# it has been declared, those changes will be discarded.
RUN ["/usr/local/bin/docker-entrypoint.sh", "mysqld", "--datadir", "/initialized-db"]
#RUN /docker-entrypoint.sh mysqld --datadir=/initialized-db && sleep 10
FROM mysql:latest
# my.cnf setting data-dir
COPY --from=builder /initialized-db /var/lib/mysql