3 Commity 3073a4ac64 ... da7e926f6d

Autor SHA1 Wiadomość Data
  Andrew Swistak da7e926f6d Attempt to fix connection pooling issues 5 lat temu
  Andrew Swistak eceeae1e71 Add server deployment config 5 lat temu
  Andrew Swistak 7ef63c298e Prepare docker-compose for VPS deployment 5 lat temu
5 zmienionych plików z 31 dodań i 5 usunięć
  1. 1 2
      .env.template
  2. 2 1
      bot.rb
  3. 9 0
      deploy/deploy.sh
  4. 15 0
      deploy/rotom-bot.service
  5. 4 2
      docker-compose.yml

+ 1 - 2
.env.template

@@ -1,9 +1,8 @@
 POSTGRES_USER=rotom
 POSTGRES_PASSWORD=PleaseChangeMe:D
 POSTGRES_DB=pmd
+POSTGRES_PORT=5432
 
 DISCORD_CLIENT_ID=
 DISCORD_SECRET=
 DISCORD_BOT_TOKEN=
-
-DB_HOST_PORT=6543

+ 2 - 1
bot.rb

@@ -34,7 +34,8 @@ ActiveRecord::Base.establish_connection(
   host: db_config.fetch('host') { 'localhost' },
   database: db_config['database'],
   user: db_config['user'],
-  password: db_config['password']
+  password: db_config['password'],
+  pool: 5
 )
 
 Dir['app/**/*.rb'].each { |f| require File.join(File.expand_path(__dir__), f) }

+ 9 - 0
deploy/deploy.sh

@@ -0,0 +1,9 @@
+#!/bin/bash
+
+cd $HOME/rotom_bot
+git pull
+
+docker build . -t rotom_bot:latest
+docker stop rotom_bot
+docker run --env-file .env --name rotom_bot --rm -d rotom_bot:latest
+docker image prune -f

+ 15 - 0
deploy/rotom-bot.service

@@ -0,0 +1,15 @@
+[Unit]
+Description=Docker Compose Encapsulated Rotom Discord Bot
+Requires=docker.service
+After=docker.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+WorkingDirectory=/srv/docker
+ExecStart=/usr/local/bin/docker-compose up -d
+ExecStop=/usr/local/bin/docker-compose down
+TimeoutStartSec=0
+
+[Install]
+WantedBy=multi-user.target

+ 4 - 2
docker-compose.yml

@@ -2,6 +2,7 @@ version: "3.7"
 
 services:
   bot:
+    restart: unless-stopped
     build: .
     depends_on:
       - db
@@ -9,20 +10,21 @@ services:
       - POSTGRES_DB
       - POSTGRES_HOST=db
       - POSTGRES_PASSWORD
-      - POSTGRES_PORT=6543
+      - POSTGRES_PORT
       - POSTGRES_USER
       - DISCORD_CLIENT_ID
       - DISCORD_SECRET
       - DISCORD_BOT_TOKEN
 
   db:
+    restart: unless-stopped
     image: postgres:11.2-alpine
     environment:
       - POSTGRES_DB
       - POSTGRES_PASSWORD
       - POSTGRES_USER
     ports:
-      - ${DB_HOST_PORT}:6543
+      - ${POSTGRES_PORT}:5432
     volumes:
       - postgres-persisted-volume:/var/lib/postgresql/data