diff --git a/.env.example b/.env.example index 9367980..f841aaa 100644 --- a/.env.example +++ b/.env.example @@ -1,12 +1,27 @@ # Do not use "around your text" ("") +# Timezone +TZ=Europe/Stockholm + +# Do not touch unless you know what you doing +PUID=1000 +PGID=1000 + # Discord DISCORD_TOKEN= DISCORD_CLIENT_ID= DISCORD_GUILD_ID= # Database -DATABASE_URL=mysql://username:password@mariadb:3306/database +MYSQL_ROOT_PASSWORD=root + +MYSQL_HOST=localhost +MYSQL_USER=username +MYSQL_PASSWORD=password +MYSQL_DATABASE=database + +# DO NOT TOUCH UNLESS YOU KNOW WHAT YOU ARE DOING +DATABASE_URL=mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}/${MYSQL_DATABASE} # Encryption ENCRYPTION_ALGORITHM=aes-256-ctr @@ -27,4 +42,4 @@ REPUTATION_TIMEOUT=86400 # Bot Hoster BOT_HOSTER_NAME=Zyner -BOT_HOSTER_URL=https://xyter.zyner.org/customization/change-hoster \ No newline at end of file +BOT_HOSTER_URL=https://xyter.zyner.org/customization/change-hoster diff --git a/Dockerfile b/Dockerfile index 3541858..52a5f39 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,9 +21,16 @@ WORKDIR /app ENV NODE_ENV production +# Add mysql precheck +RUN apk add --no-cache mysql-client +ADD docker-entrypoint.sh /docker-entrypoint.sh +RUN chmod +x /docker-entrypoint.sh + +# Copy files COPY --from=build /app/package.json ./ COPY --from=build /app/node_modules ./node_modules -COPY --from=build /app/dist ./dist COPY --from=build /app/prisma ./prisma +COPY --from=build /app/dist ./dist +ENTRYPOINT [ "/docker-entrypoint.sh" ] CMD [ "npm", "run", "start:migrate:prod" ] diff --git a/docker-compose.yml b/docker-compose.yml index fc333bf..e72c162 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,13 +27,5 @@ services: container_name: mariadb image: lscr.io/linuxserver/mariadb:latest restart: unless-stopped - environment: - - PUID=1000 - - PGID=1000 - - TZ=Region/City - - MYSQL_ROOT_PASSWORD=root - - MYSQL_DATABASE=database - - MYSQL_USER=username - - MYSQL_PASSWORD=password volumes: - ./db:/config diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..1455a8d --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + +echo "Check DB!" +while ! mysqladmin ping -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD}; do + echo "Wait ..." + sleep 1 +done +echo "DB ready!" + +${@}