aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2022-07-23 14:49:08 +0200
committerGravatar Hassan Abouelela <[email protected]>2022-07-23 17:10:52 +0200
commit16804aab66588549da84ea503a7180fff2c54834 (patch)
tree3f0deff12deb9e8bb019da0dae13d020b7c05017
parentAdd Sample Project With Boilerplate (diff)
Clean Up Docker Configuration
Rewrites the docker configuration to better work for this project. A docker compose containing the dependencies from our other projects is also included to help aid development. Signed-off-by: Hassan Abouelela <[email protected]>
-rw-r--r--.dockerignore9
-rw-r--r--dev/Dockerfile13
-rw-r--r--dev/docker-compose.yaml27
-rw-r--r--docker-compose.yaml61
4 files changed, 77 insertions, 33 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 00000000..9fb3df72
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,9 @@
+*
+
+!botcore/
+!docs/
+!tests/
+
+!pyproject.toml
+!poetry.lock
+!tox.ini
diff --git a/dev/Dockerfile b/dev/Dockerfile
index 738fc51a..e1d8eba3 100644
--- a/dev/Dockerfile
+++ b/dev/Dockerfile
@@ -4,18 +4,19 @@ FROM python:3.9-slim
ENV PIP_NO_CACHE_DIR=false \
POETRY_VIRTUALENVS_CREATE=false
-ENTRYPOINT ["/bin/bash"]
-CMD ["./docker-entrypoint.sh"]
-
# Install poetry
RUN pip install -U poetry
-RUN mkdir bot
-WORKDIR /bot
+WORKDIR /app
# Install project dependencies
COPY pyproject.toml poetry.lock ./
-RUN poetry install --no-dev
+RUN poetry install --no-root
# Copy the source code in last to optimize rebuilding the image
COPY . .
+# Install again, this time with the root project
+RUN poetry install
+
+ENTRYPOINT ["python"]
+CMD ["-m", "bot"]
diff --git a/dev/docker-compose.yaml b/dev/docker-compose.yaml
deleted file mode 100644
index e1dca5bb..00000000
--- a/dev/docker-compose.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-version: "3.9"
-
-x-logging: &logging
- logging:
- driver: "json-file"
- options:
- max-file: "5"
- max-size: "10m"
-
-x-restart-policy: &restart_policy
- restart: unless-stopped
-
-services:
- botcore:
- <<: *logging
- <<: *restart_policy
- build:
- context: .
- dockerfile: Dockerfile
- container_name: botcore
-
- volumes:
- - ./logs:/bot/logs
- - .:/bot:ro
-
- env_file:
- - .env
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 00000000..4b6468f1
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,61 @@
+# Modified version of python-discord/bot
+
+version: "3.8"
+
+x-restart-policy: &restart_policy
+ restart: unless-stopped
+
+services:
+ postgres:
+ << : *restart_policy
+ image: postgres:13-alpine
+ environment:
+ POSTGRES_DB: pysite
+ POSTGRES_PASSWORD: pysite
+ POSTGRES_USER: pysite
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U pysite"]
+ interval: 2s
+ timeout: 1s
+ retries: 5
+
+ redis:
+ << : *restart_policy
+ image: redis:5.0.9
+ ports:
+ - "6379:6379"
+
+ snekbox:
+ << : *restart_policy
+ image: ghcr.io/python-discord/snekbox:latest
+ init: true
+ ipc: none
+ ports:
+ - "8060:8060"
+ privileged: true
+
+ web:
+ << : *restart_policy
+ image: ghcr.io/python-discord/site:latest
+ command: ["run", "--debug"]
+ ports:
+ - "8000:8000"
+ tty: true
+ environment:
+ DATABASE_URL: postgres://pysite:pysite@postgres:5432/pysite
+ METRICITY_DB_URL: postgres://pysite:pysite@postgres:5432/metricity
+ SECRET_KEY: suitable-for-development-only
+ STATIC_ROOT: /var/www/static
+
+ bot:
+ << : *restart_policy
+ build:
+ context: .
+ dockerfile: dev/Dockerfile
+ volumes:
+ - .:/app:ro
+ tty: true
+ env_file:
+ - .env
+ environment:
+ BOT_API_KEY: badbot13m0n8f570f942013fc818f234916ca531