Kurz zu mir:
Ich arbeite schon seit 2004 im Web und habe von Mambo über Joomla zu Modx dann Typolight (Contao) zum Schluß SuluCMS gearbeitet.
Ich arbeite nun seit ca 6 Monaten bei meinen Projekten auch mit Docker und habe mir hier einen zusammengebaut (Docker-Compose) der alles hat was ich so brauche.
Diese sind auf Basis von PHP und ich habe diese wie hier zu sehen aufgebaut ( https://github.com/csaeum/WSC-Matomo ).
Nun möchte ich mich in Python ( aka Django) und hier besonder mit Django-CMS einarbeiten.
Einige Sachen sind für mich noch sehr neu, darum habt ein wenig Geduld mit mir.
Ich habe gestern den Container von ( https://www.django-cms.org/en/blog/2021 ... 5-minutes/ ) mit meinen Traefik zum laufen bekommen und kann nun schonmal testen.
Leider fehlt mir hier der Ansatz der Volumes so das Daten auch fest gespeichert werden wenn man mal runterfährt usw.
Daher nun der Versuch eines eigenen Containers den ich kenne.
Ich habe es soweit also verstanden, es braucht als DB PostgreSQL, ich brauche ein Image das Python ausführt und hier würde ich am liebsten gleich ein Image nutzen was mir schon Django reinholt. Dann würde ich am liebsten mich in den Container einloggen und das Skript für DjangoCMS Installer starten:
Genau hier stecke ich gerade fest.How to install: Install django CMS in your environment with Nephila’s django CMS Installer or download the package from PyPi.
Soweit ich schon recherchiert habe gibt es scheinbar kein Django Image. Also muss ich mit einen Dockerfile arbeiten oder?
Für kleine Webseiten brauch ich hier Gunicorn oder ähnliche oder reicht der "VorschauServer"?
Anbei noch meine Docker-Compose Datei:
Code: Alles auswählen
version: '3'
volumes:
www-data:
driver: local-persist
driver_opts:
mountpoint: ${CONTAINERVOLUMES}/html
postgres-data:
driver: local-persist
driver_opts:
mountpoint: ${CONTAINERVOLUMES}/postgres
elastic-data:
driver: local-persist
driver_opts:
mountpoint: ${CONTAINERVOLUMES}/elastic
redis-data:
driver: local-persist
driver_opts:
mountpoint: ${CONTAINERVOLUMES}/redis
services:
# sshd:
# image: hermsi/alpine-sshd
# container_name: ${COMPOSE_PROJECT_NAME}-SSH
# environment:
# ROOT_PASSWORD: ${ROOT_PASSWORD}
# ports:
# - "${SSH_PORT}:22"
# volumes:
# - www-data:/var/www/html
django:
image:
webserver:
container_name: ${COMPOSE_PROJECT_NAME}-WebServer
build: .
command: python manage.py runserver 0.0.0.0:80
volumes:
- .:/code
ports:
- "8000:80"
depends_on:
- postgres
volumes:
- www-data:/app
networks:
- default
- proxy
labels:
- traefik.enable=true
# Routers
- traefik.http.routers.${COMPOSE_PROJECT_NAME}.rule=${HOSTRULE}
- traefik.http.routers.${COMPOSE_PROJECT_NAME}.entrypoints=websecure
- traefik.http.routers.${COMPOSE_PROJECT_NAME}.tls.certresolver=myresolver
- traefik.http.routers.${COMPOSE_PROJECT_NAME}.service=${COMPOSE_PROJECT_NAME}_SVC
- traefik.http.routers.${COMPOSE_PROJECT_NAME}.middlewares=${COMPOSE_PROJECT_NAME}_Header
- traefik.http.services.${COMPOSE_PROJECT_NAME}_SVC.loadBalancer.server.port=80
- traefik.http.middlewares.${COMPOSE_PROJECT_NAME}_Header.headers.customrequestheaders.X-Forwarded-Proto=https
- traefik.http.middlewares.${COMPOSE_PROJECT_NAME}_Header.headers.customrequestheaders.X-Forwarded-Ssl=on
- traefik.http.middlewares.${COMPOSE_PROJECT_NAME}_Header.headers.customrequestheaders.X-Forwarded-Port=443
- traefik.docker.network=traefik_proxy
postgres:
image: postgres:9.6-alpine
container_name: ${COMPOSE_PROJECT_NAME}-Postgres
volumes:
- postgres-data:/var/lib/postgres/data
environment:
POSTGRES_DB: ${POSTGRES_DATABASE}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
redis:
image: redis:alpine
container_name: ${COMPOSE_PROJECT_NAME}-Redis
volumes:
- redis-data:/data
# elastic:
# image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
# container_name: ${COMPOSE_PROJECT_NAME}-Elastic
# volumes:
# - elastic-data:/usr/share/elasticsearch/data
# ulimits:
# memlock:
# soft: -1
# hard: -1
# nofile:
# soft: 65535
# hard: 65535
# environment:
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# - discovery.type=single-node
# - bootstrap.memory_lock=true
# expose:
# - 9200
# - 9300
networks:
proxy:
external:
name: ${PROXY_NETWORK}