Skip to content

Docker setup? #32

@ethanopp

Description

@ethanopp

Hey @ned2 - first off thanks for this amazing repo, it has helped me organize my own project substantially.

I'm working on a project that would let users self-host an analytical fitness application:
https://github.com/ethanopp/fitly

I'd like to add the ability for the users to be able to deploy via docker, and I currently have it working with the following docker-compose, but saw some benefits in your readme on using the apache prod script instead of an external (gunicorn in this case) server:

version: '3'
services:
  letsencrypt:
    image: linuxserver/letsencrypt
    container_name: letsencrypt 
    cap_add:
      - NET_ADMIN
    restart: always
    ports:
      - "80:80"
      - "443:443"
    environment:
      - PUID=1000
      - PGID=100
      - TZ=America/New_York
      - EMAIL=<your email>
      - URL=<website.com>
      - SUBDOMAINS=fit # this would give a website like fit.website.com
    volumes:
      - /share/CACHEDEV2_DATA/Container/LetsEncrypt:/config
  fitly:
    build:
      dockerfile: Dockerfile
    container_name: fitly
    restart: always
    depends_on:
      - letsencrypt
    ports:
      - "8050:80"
    environment:
      - MODULE_NAME=src.fitly.app
      - VARIABLE_NAME=server
      - TZ=America/New_York
      - TIMEOUT=1200
      - PUID=1000
      - PGID=100
      - DASH_DEBUG=true
    volumes:
      - /share/CACHEDEV2_DATA/Container/Fitly-Slap/fitness.db:/app/fitness.db
      - /share/CACHEDEV2_DATA/Container/Fitly-Slap/config.ini:/app/config.ini
      - /share/CACHEDEV2_DATA/Container/Fitly-Slap/log.log:/app/log.log
      - /share/CACHEDEV2_DATA/Container/Fitly-Slap/gunicorn_conf.py:/gunicorn_conf.py
      - /share/CACHEDEV2_DATA/Container/LetsEncrypt/keys:/app/keys

where fitly is built on the following Dockerfile:

FROM tiangolo/meinheld-gunicorn:python3.7
LABEL maintainer="maintainer"
RUN git clone https://github.com/ethanopp/fitly.git
RUN pip install -U pip && pip install -r ./fitly/requirements.txt
RUN mv ./fitly/* /app/ && rm -rf ./fitly
ENV NGINX_WORKER_PROCESSES auto

Would you happen to have any docs on how to get a docker container stood up which leverages the run-slug-prod script in your repo? Also just in general, is it worth it to switch over towards leveraging that approach or given that the users will most likely just be pulling the repo and deploying (not editing prod_settings, etc.), is the above okay?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions