You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.8 KiB
149 lines
4.8 KiB
# BikeBike
|
|
#
|
|
# ENV DATABASE_URL string = https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
|
|
#
|
|
# docker-compose.build:
|
|
#
|
|
# docker compose up -d
|
|
# docker compose run --rm bikebike rake db:setup
|
|
# docker compose run --rm bikebike rake db:migrate
|
|
# docker compose run --rm bikebike rake assets:precompile
|
|
# docker compose down
|
|
# docker compose up -d
|
|
#
|
|
# Never do this because new sprockets and manifest.js isn't precompiling to *css, and breaks the container
|
|
# -- docker-compose run bikebike rake bumbleberry:update --
|
|
#
|
|
# This is why we resort to git lfs, and utilize precompiled css,
|
|
# which is updated as requuired to newest modern browsers with caniuse.js
|
|
#
|
|
# exporting database: pg_dump -c -U bike_bike bike_bike > bike_bike.sql
|
|
|
|
services:
|
|
|
|
redis:
|
|
# container_name: bikebikebike-redis
|
|
image: redis:6.2-alpine
|
|
ports:
|
|
- "6379"
|
|
restart: always
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
#volumes:
|
|
# -
|
|
|
|
# Run sidekiq as it's own process using the same image that bikbike uses!
|
|
sidekiq:
|
|
image: bikebikebike
|
|
# container_name: bikebikebike-sidekiq
|
|
command: sidekiq -q production
|
|
environment:
|
|
- REDIS_URL=redis://redis:6379
|
|
- DATABASE_URL=${DATABASE_URL:-postgresql://bike_bike:password@db/bike_bike?encoding=unicode&pool=5}
|
|
- PORT=3000
|
|
- RAILS_ENV=${RAILS_ENV:-production}
|
|
- SMTP_ADDRESS=${SMTP_ADDRESS:-fake-smtp.bikebike.org}
|
|
- SMTP_DOMAIN=${SMTP_DOMAIN:-bikebike.org}
|
|
- SMTP_PORT=${SMTP_PORT:-587}
|
|
- SMTP_USER_NAME=${SMTP_USER_NAME:-info@bikebike.org}
|
|
- SMTP_PASSWORD=${SMTP_PASSWORD:-fake}
|
|
- SMTP_SSL=${SMTP_SSL:-false}
|
|
- ADMIN_EMAIL=${ADMIN_EMAIL:-info@bikebike.org}
|
|
- DEFAULT_URL=${DEFAULT_URL:-bikebike.org}
|
|
restart: always
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
db:
|
|
# container_name: bikebikebike-db
|
|
image: postgres:9.5
|
|
ports:
|
|
- "5432"
|
|
restart: always
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
volumes:
|
|
- bikebikebike_db:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_PASSWORD=password
|
|
- POSTGRES_USER=bike_bike
|
|
- POSTGRES_DB=bike_bike
|
|
|
|
bikebike:
|
|
build: .
|
|
image: bikebikebike
|
|
# container_name: bikebikebike
|
|
networks:
|
|
letsencrypt:
|
|
default:
|
|
command: /bin/sh -c "rm -f /app/BikeBike/tmp/pids/server.pid && rails server -b '0.0.0.0'"
|
|
# Add environment values that are not in .env (environment:) below in the bike_bike_advanced_environment file
|
|
# Empty file ok, too, or just comment out this section
|
|
env_file:
|
|
- bike_bike_advanced_environment
|
|
# Add your own environment values in .env, or use the default ones
|
|
environment:
|
|
- PORT=3000
|
|
- RAILS_ENV=${RAILS_ENV:-production}
|
|
- DATABASE_URL=${DATABASE_URL:-postgresql://bike_bike:password@db/bike_bike?encoding=unicode&pool=5}
|
|
- SMTP_ADDRESS=${SMTP_ADDRESS:-fake-smtp.bikebike.org}
|
|
- SMTP_DOMAIN=${SMTP_DOMAIN:-bikebike.org}
|
|
- SMTP_PORT=${SMTP_PORT:-587}
|
|
- SMTP_USER_NAME=${SMTP_USER_NAME:-info@bikebike.org}
|
|
- SMTP_PASSWORD=${SMTP_PASSWORD:-fake}
|
|
- SMTP_SSL=${SMTP_SSL:-false}
|
|
- ADMIN_EMAIL=${ADMIN_EMAIL:-info@bikebike.org}
|
|
- DEFAULT_URL=${DEFAULT_URL:-bikebike.org}
|
|
- REDIS_URL=redis://redis:6379
|
|
- RECAPTCHA_SECRET_KEY=${RECAPTCHA_SECRET_KEY:-123456789}
|
|
- RECAPTCHA_SITE_KEY=${RECAPTCHA_SITE_KEY:-123456789}
|
|
volumes:
|
|
- bikebikebike:/app/BikeBike
|
|
- bikebikebike_bundle:/usr/local/bundle
|
|
- bikebikebike_uploads:/app/BikeBike/public/uploads
|
|
expose:
|
|
- "3000"
|
|
links:
|
|
- db
|
|
# Make sure to rename container to what is being used
|
|
labels:
|
|
ofelia.enabled: "true" # in rss2email
|
|
ofelia.job-exec.bikebikebike-caniuse.schedule: "@every 6h"
|
|
ofelia.job-exec.bikebikebike-caniuse.container: "bikebikebike"
|
|
ofelia.job-exec.bikebikebike-caniuse.command: "/app/BikeBike/caniuse.js"
|
|
ofelia.job-exec.bikebikebike-caniuse.user: "root:root"
|
|
ofelia.job-exec.bikebikebike-browserlist.schedule: "@every 24h"
|
|
ofelia.job-exec.bikebikebike-browserlist.container: "bikebikebike"
|
|
ofelia.job-exec.bikebikebike-browserlist.command: "/root/.local/share/pnpm/pnpm update browserlist@latest"
|
|
ofelia.job-exec.bikebikebike-browserlist.user: "root:root"
|
|
restart: always
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Currently set to false for all volumes for development
|
|
volumes:
|
|
bikebikebike_db:
|
|
external: false
|
|
bikebikebike:
|
|
external: false
|
|
bikebikebike_bundle:
|
|
external: false
|
|
bikebikebike_uploads:
|
|
external: false
|
|
|
|
# Remove this network if you don't use it
|
|
networks:
|
|
letsencrypt:
|
|
external: true
|
|
|