Migrate to Podman

This commit is contained in:
Mark Veidemanis 2023-07-06 16:11:02 +00:00
parent b4424a7782
commit 8ef39ffe48
Signed by: m
GPG Key ID: 5ACFCEED46C0904F
7 changed files with 82 additions and 78 deletions

View File

@ -2,8 +2,8 @@
FROM python:3
ARG OPERATION
RUN useradd -d /code xf
RUN mkdir -p /code
RUN useradd -d /code xf
RUN chown -R xf:xf /code
RUN mkdir -p /conf/static
@ -16,7 +16,7 @@ USER xf
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
COPY --chown=xf:xf requirements.txt /code/
RUN python -m venv /venv
RUN . /venv/bin/activate && pip install -r requirements.txt

View File

@ -1,26 +1,26 @@
run:
docker-compose --env-file=stack.env up -d
podman-compose --env-file=stack.env up -d
build:
docker-compose --env-file=stack.env build
podman-compose --env-file=stack.env build
stop:
docker-compose --env-file=stack.env down
podman-compose --env-file=stack.env down
log:
docker-compose --env-file=stack.env logs -f
podman-compose --env-file=stack.env logs -f
test:
docker-compose --env-file=stack.env run -e LIVE=$(LIVE) --rm app sh -c ". /venv/bin/activate && python manage.py test $(MODULES) -v 2"
podman-compose --env-file=stack.env run -e LIVE=$(LIVE) --rm app sh -c ". /venv/bin/activate && python manage.py test $(MODULES) -v 2"
migrate:
docker-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py migrate"
podman-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py migrate"
makemigrations:
docker-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py makemigrations"
podman-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py makemigrations"
auth:
docker-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py createsuperuser"
podman-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py createsuperuser"
token:
docker-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py addstatictoken m"
podman-compose --env-file=stack.env run --rm app sh -c ". /venv/bin/activate && python manage.py addstatictoken m"

View File

@ -57,18 +57,20 @@ INSTALLED_APPS = [
]
# Performance optimisations
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.redis.RedisCache",
"LOCATION": "unix:///var/run/socks/redis.sock",
"OPTIONS": {
"db": "10",
"parser_class": "redis.connection.HiredisParser",
"pool_class": "redis.BlockingConnectionPool",
},
}
}
# Performance optimisations # COMMENTED DUE TO PODMAN ISSUE
# CACHES = {
# "default": {
# "BACKEND": "django.core.cache.backends.redis.RedisCache",
# "LOCATION": "unix:///var/run/socks/redis.sock",
# "OPTIONS": {
# "db": "10",
# "parser_class": "redis.connection.HiredisParser",
# "pool_class": "redis.BlockingConnectionPool",
# },
# }
# }
# END PODMAN ISSUE
# CACHE_MIDDLEWARE_ALIAS = 'default'
# CACHE_MIDDLEWARE_SECONDS = '600'
# CACHE_MIDDLEWARE_KEY_PREFIX = ''

View File

@ -1,14 +1,6 @@
import os
import stripe
from django.conf import settings
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
# from redis import StrictRedis
# r = StrictRedis(unix_socket_path="/var/run/redis/redis.sock", db=0)
if settings.STRIPE_TEST:
stripe.api_key = settings.STRIPE_API_KEY_TEST
else:
stripe.api_key = settings.STRIPE_API_KEY_PROD

View File

@ -1,10 +1,16 @@
import stripe
from django.conf import settings
from lago_python_client import Client
from lago_python_client.clients.base_client import LagoApiError
# from lago_python_client import Client
from lago_python_client.client import Client
from lago_python_client.exceptions import LagoApiError
from lago_python_client.models import Customer, CustomerBillingConfiguration
client = Client(api_key=settings.LAGO_API_KEY, api_url=settings.LAGO_URL)
if settings.STRIPE_TEST:
stripe.api_key = settings.STRIPE_API_KEY_TEST
else:
stripe.api_key = settings.STRIPE_API_KEY_PROD
def expand_name(first_name, last_name):

View File

@ -412,6 +412,7 @@ def execute_strategy(callback, strategy, func):
direction=direction,
**protection,
)
log.debug(f"Created Trade: {new_trade}")
new_trade.save()
if strategy.risk_model is not None:

View File

@ -17,8 +17,8 @@ services:
# - "8000:8000" # uwsgi socket
env_file:
- stack.env
volumes_from:
- tmp
# volumes_from:
# - tmp
depends_on:
# redis:
# condition: service_healthy
@ -46,11 +46,11 @@ services:
- fisk_static:${STATIC_ROOT}
env_file:
- stack.env
volumes_from:
- tmp
# volumes_from:
# - tmp
depends_on:
redis:
condition: service_healthy
# redis:
# condition: service_healthy
migration:
condition: service_started
collectstatic:
@ -72,8 +72,8 @@ services:
- ${PORTAINER_GIT_DIR}:/code
- ${APP_DATABASE_FILE}:/conf/db.sqlite3
- fisk_static:${STATIC_ROOT}
volumes_from:
- tmp
# volumes_from:
# - tmp
env_file:
- stack.env
@ -89,27 +89,27 @@ services:
- ${PORTAINER_GIT_DIR}:/code
- ${APP_DATABASE_FILE}:/conf/db.sqlite3
- fisk_static:${STATIC_ROOT}
volumes_from:
- tmp
# volumes_from:
# - tmp
env_file:
- stack.env
nginx:
image: nginx:latest
image: nginxinc/nginx-unprivileged:latest
container_name: nginx_fisk
ports:
- ${APP_PORT}:9999
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
# ulimits:
# nproc: 65535
# nofile:
# soft: 65535
# hard: 65535
volumes:
- ${PORTAINER_GIT_DIR}:/code
- ${PORTAINER_GIT_DIR}/docker/nginx/conf.d/${OPERATION}.conf:/etc/nginx/conf.d/default.conf
- fisk_static:${STATIC_ROOT}
volumes_from:
- tmp
# volumes_from:
# - tmp
networks:
- default
- xf
@ -124,33 +124,36 @@ services:
# redis:
# condition: service_healthy
tmp:
image: busybox
container_name: tmp_fisk
command: chmod -R 777 /var/run/socks
volumes:
- /var/run/socks
# tmp:
# image: busybox
# container_name: tmp_fisk
# command: chmod -R 777 /var/run/socks
# volumes:
# - /var/run/socks
# For caching
redis:
image: redis
container_name: redis_fisk
command: redis-server /etc/redis.conf
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
volumes:
- ${PORTAINER_GIT_DIR}/docker/redis.conf:/etc/redis.conf
- fisk_redis_data:/data
volumes_from:
- tmp
healthcheck:
test: "redis-cli -s /var/run/socks/redis.sock ping"
interval: 2s
timeout: 2s
retries: 15
# # For caching
# redis:
# image: redis
# container_name: redis_fisk
# command: redis-server /etc/redis.conf
# #ulimits:
# # nproc: 65535
# # nofile:
# # soft: 65535
# # hard: 65535
# volumes:
# - ${PORTAINER_GIT_DIR}/docker/redis.conf:/etc/redis.conf
# - fisk_redis_data:/data
# volumes_from:
# - tmp
# healthcheck:
# test: "redis-cli -s /var/run/socks/redis.sock ping"
# interval: 2s
# timeout: 2s
# retries: 15
# depends_on:
# tmp:
# condition: service_started
# pyroscope:
# image: "pyroscope/pyroscope:latest"