Skip to content

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

Description

@g0ld3lux

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions