Open
Description
Hi im trying to Use this via
docker-compose-yml
and build it...
Can You Please help me Fix this?
version: '2'
services:
mariadb:
build:
context: ./mariadb
dockerfile: Dockerfile
# PASSHERE YOUR DATABASE CREDENTIALS
args:
- MYSQL_DATABASE=mariadb
- MYSQL_USER=user
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=root
ports:
# SPECIFY YOUR NETWORK
networks:
- backend
networks:
# Separate Network For Front End and Back End Network
frontend:
# bridge for single host and overlay on swarm
driver: "bridge"
backend:
driver: "bridge"
Dockerfile
FROM alpine:3.4
RUN apk add --no-cache curl mysql mysql-client
RUN curl -o /usr/local/bin/gosu -sSL "https://github.com/tianon/gosu/releases/download/1.2/gosu-amd64"
RUN chmod +x /usr/local/bin/gosu
ARG MYSQL_DATABASE=database
ENV MYSQL_DATABASE ${MYSQL_DATABASE}
ARG MYSQL_USER=admin
ENV MYSQL_USER ${MYSQL_USER}
ARG MYSQL_PASSWORD=password
ENV MYSQL_PASSWORD ${MYSQL_PASSWORD}
ARG MYSQL_ROOT_PASSWORD=root
ENV MYSQL_ROOT_PASSWORD ${MYSQL_ROOT_PASSWORD}
ENV LINK_SCHEME mysql
ENV LINK_USERNAME ${MYSQL_USER}
ENV LINK_PASSWORD ${MYSQL_PASSWORD}
ENV LINK_PATH /app
ENV LANG en_US.utf8
ENV MYSQL_CONF /etc/mysql
ENV MYSQL_DATA /var/lib/mysql
ENV MYSQL_INITFILE /init.sql
ENV MYSQL_RUN /run/mysqld
ENV TERM dumb
VOLUME /var/lib/mysql
COPY docker-entrypoint.sh /
RUN apk del curl
ENTRYPOINT ["/docker-entrypoint.sh"]
EXPOSE 3306
CMD ["mysqld"]
docker-entrypoint.sh
#!/bin/sh
chown -R mysql "$MYSQL_DATA"
# TODO: Check if mysql already configured...
mysql_install_db --user=$MYSQL_USER
if [ ! -d "/run/mysqld" ]; then
mkdir -p /run/mysqld
fi
chown -R mysql "$MYSQL_RUN"
cat << EOF > $MYSQL_INITFILE
USE $MYSQL_DATABASE;
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY "$MYSQL_ROOT_PASSWORD" WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY "$MYSQL_ROOT_PASSWORD" WITH GRANT OPTION;
SET GLOBAL max_connect_errors=18446744073709551615;
EOF
if [ "$MYSQL_DATABASE" != "" ]; then
echo "[i] Creating database: $MYSQL_DATABASE"
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DATABASE\` CHARACTER SET utf8 COLLATE utf8_general_ci;" >> $MYSQL_INITFILE
if [ "$MYSQL_USER" != "" ]; then
echo "[i] Creating user: $MYSQL_USER with password $MYSQL_PASSWORD"
echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* to '$MYSQL_USER'@'localhost' IDENTIFIED BY '$MYSQL_PASSWORD';" >> $MYSQL_INITFILE
echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* to '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';" >> $MYSQL_INITFILE
fi
fi
chown mysql "$MYSQL_INITFILE"
/usr/bin/mysqld_safe --user=root --init-file=$MYSQL_INITFILE
rm -f $MYSQL_INITFILE
exec gosu mysql "$@"