diff --git a/Dockerfile b/Dockerfile index 654d55eb..c25eb2ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM alpine:3.6 ADD . /app -RUN cd app && sh container-install.sh +RUN cd app && sh docker/container-install.sh WORKDIR /app @@ -27,4 +27,4 @@ EXPOSE 8080 # EXPOSE 1337 # EXPOSE 8443 -CMD ["sh", "run.sh"] +CMD ["sh", "docker/docker-run.sh"] diff --git a/README.md b/README.md index a4ec16d1..6d90166a 100644 --- a/README.md +++ b/README.md @@ -80,11 +80,6 @@ Installing Installation instructions are available here: https://github.com/calzoneman/sync/wiki/CyTube-3.0-Installation-Guide -Docker ------- - -`docker pull davidsiaw/sync:3.0` - Feedback -------- diff --git a/config.docker.yaml b/docker/config.docker.yaml similarity index 100% rename from config.docker.yaml rename to docker/config.docker.yaml diff --git a/container-install.sh b/docker/container-install.sh similarity index 98% rename from container-install.sh rename to docker/container-install.sh index bed54da4..54ef5f5d 100644 --- a/container-install.sh +++ b/docker/container-install.sh @@ -5,5 +5,3 @@ apk add build-base python git nodejs nodejs-npm mysql mysql-client curl gettext npm install npm@latest -g npm install npm run build-server - - diff --git a/docker/docker-run.sh b/docker/docker-run.sh new file mode 100644 index 00000000..95005f10 --- /dev/null +++ b/docker/docker-run.sh @@ -0,0 +1,64 @@ +#!/bin/sh +#plagiarized from wangxian/alpine-mysql +if [ -d /app/mysql ]; then + echo "[i] MySQL directory already present, skipping creation" +else + echo "[i] MySQL data directory not found, creating initial DBs" + + mysql_install_db --user=root > /dev/null + + if [ "$MYSQL_ROOT_PASSWORD" = "" ]; then + MYSQL_ROOT_PASSWORD=111111 + echo "[i] MySQL root Password: $MYSQL_ROOT_PASSWORD" + fi + + MYSQL_DATABASE=${MYSQL_DATABASE} + MYSQL_USER=${MYSQL_USER} + MYSQL_PASSWORD=${MYSQL_PASSWORD} + + if [ ! -d "/run/mysqld" ]; then + mkdir -p /run/mysqld + fi + + tfile=`mktemp` + if [ ! -f "$tfile" ]; then + return 1 + fi + + cat << EOF > $tfile +USE mysql; +FLUSH PRIVILEGES; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY "$MYSQL_ROOT_PASSWORD" WITH GRANT OPTION; +GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; +DROP USER ''@'${HOSTNAME}'; +DROP USER 'root'@'${HOSTNAME}'; +DROP USER 'root'@'localhost'; +DROP USER 'root'@'127.0.0.1'; +DROP USER 'root'@'::1'; +DROP USER ''@'localhost'; +UPDATE user SET password=PASSWORD("${MYSQL_ROOT_PASSWORD}") WHERE user='root' AND host='%'; +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;" >> $tfile + + if [ "$MYSQL_USER" != "" ]; then + echo "[i] Creating user: $MYSQL_USER with password $MYSQL_PASSWORD" + echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* to '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';" >> $tfile + fi + fi + + /usr/bin/mysqld --user=root --bootstrap --verbose=0 < $tfile + rm -f $tfile +fi + +envsubst < docker/config.docker.yaml > config.yaml + +mysqld --user=root & +while : +do + node index.js + sleep 2 +done + diff --git a/run.sh b/run.sh index 3950765b..ab2ca528 100755 --- a/run.sh +++ b/run.sh @@ -1,62 +1,4 @@ #!/bin/sh - -#plagiarized from wangxian/alpine-mysql -if [ -d /app/mysql ]; then - echo "[i] MySQL directory already present, skipping creation" -else - echo "[i] MySQL data directory not found, creating initial DBs" - - mysql_install_db --user=root > /dev/null - - if [ "$MYSQL_ROOT_PASSWORD" = "" ]; then - MYSQL_ROOT_PASSWORD=111111 - echo "[i] MySQL root Password: $MYSQL_ROOT_PASSWORD" - fi - - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} - - if [ ! -d "/run/mysqld" ]; then - mkdir -p /run/mysqld - fi - - tfile=`mktemp` - if [ ! -f "$tfile" ]; then - return 1 - fi - - cat << EOF > $tfile -USE mysql; -FLUSH PRIVILEGES; -GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY "$MYSQL_ROOT_PASSWORD" WITH GRANT OPTION; -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; -DROP USER ''@'${HOSTNAME}'; -DROP USER 'root'@'${HOSTNAME}'; -DROP USER 'root'@'localhost'; -DROP USER 'root'@'127.0.0.1'; -DROP USER 'root'@'::1'; -DROP USER ''@'localhost'; -UPDATE user SET password=PASSWORD("${MYSQL_ROOT_PASSWORD}") WHERE user='root' AND host='%'; -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;" >> $tfile - - if [ "$MYSQL_USER" != "" ]; then - echo "[i] Creating user: $MYSQL_USER with password $MYSQL_PASSWORD" - echo "GRANT ALL ON \`$MYSQL_DATABASE\`.* to '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD';" >> $tfile - fi - fi - - /usr/bin/mysqld --user=root --bootstrap --verbose=0 < $tfile - rm -f $tfile -fi - -envsubst < config.docker.yaml > config.yaml - -mysqld --user=root & while : do node index.js