add docker compose setup

This commit is contained in:
Waylon Walker 2023-06-02 15:52:12 -05:00
parent 19ea3a3e7d
commit 0d205ebd5e
No known key found for this signature in database
GPG key ID: 66E2BF2B4190EFE4
3 changed files with 111 additions and 0 deletions

14
Dockerfile Normal file
View file

@ -0,0 +1,14 @@
from python:3.10
# install python and psycopg2
# RUN apt-get update && apt-get install -y python3 python3-pip
# RUN pip3 install hatch
WORKDIR /app
Copy pyproject.toml /app
COPY learn_sql_model/__about__.py /app/learn_sql_model/__about__.py
COPY README.md /app
RUN pip3 install .
COPY . /app
RUN pip3 install .
ENTRYPOINT ["learn-sql-model", "api", "run"]

57
Dockerfile.dev Normal file
View file

@ -0,0 +1,57 @@
FROM learn-sql-model
ENV DEBIAIN_FRONTEND=noninteractive
ENV PATH="$PATH:/root/.local/bin:/root/.cargo/bin"
ENV SHELL=zsh
ENV USER=root
RUN apt update && \
apt upgrade -y && \
apt install -y \
bat \
ripgrep \
cmake \
htop \
stow \
zsh
WORKDIR /root/downloads
RUN wget https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage && \
mkdir -p /root/.local/bin && \
chmod u+x /root/downloads/nvim.appimage && \
/root/downloads/nvim.appimage --appimage-extract && \
rm -rf nvim.appimage && \
ln -s ~/downloads/squashfs-root/usr/bin/nvim ~/.local/bin/nvim && \
cd ~ && \
git clone https://github.com/LazyVim/starter ~/.config/nvim && \
nvim --headless -c 'quitall'
RUN curl -sS https://starship.rs/install.sh | sh -s -- -y
RUN curl -L zellij.dev/launch | sh -s -- help
# RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly -y && \
# cargo install \
# exa \
# gitui
RUN python3 -m pip install --upgrade pip && \
python3 -m pip install pipx && \
python3 -m pip install hatch && \
python3 -m pipx install ansible-core && \
python3 -m pipx install lolcat && \
python3 -m pipx install pyflyby && \
python3 -m pipx install rich-cli && \
python3 -m pipx install visidata
WORKDIR /app
COPY . .
RUN python3 -m hatch env create && \
python3 -m hatch shell
RUN stow bin -t /root/
ENTRYPOINT /tmp/zellij/bootstrap/zellij

40
docker-compose.yml Normal file
View file

@ -0,0 +1,40 @@
version: "3.8"
services:
db:
image: postgres:14.1-alpine
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
ports:
- "5432:5432"
volumes:
- db:/var/lib/postgresql/data
api:
build:
dockerfile: Dockerfile
tags:
- "learn-sql-model"
image: learn-sql-model
restart: always
ports:
- "5000:5000"
depends_on:
- db
volumes:
- ./:/app
cli:
build:
dockerfile: Dockerfile.dev
tags:
- "learn-sql-model-dev"
image: learn-sql-model-dev
depends_on:
- db
- api
restart: always
tty: true
stdin_open: true
volumes:
db:
driver: local