Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ERROR: for mariadb Cannot start service mariadb: oci runtime error: exec: "/docker-entrypoint.sh": permission denied ERROR: Encountered errors while bringing up the project. #6

Open
g0ld3lux opened this issue Sep 18, 2016 · 0 comments
Labels

Comments

@g0ld3lux
Copy link

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 "$@"

@ddollar ddollar added the bug label Oct 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants