Remi
FĂ©vrier 11, 2021, 7:56
1
Bonjour,
J’essaie d’installer Dokos avec l’image Docker, et lorsque j’ouvre le navigateur : http://erp.example.com/ ça donne :
Internal Server Error
et en https://erp.example.com :
404 page not found
En suivant la procédure d’installation, voici ma configuration :
$ cat .env
LETSENCRYPT_EMAIL=email@example.com
DOKOS_VERSION=latest
DODOCK_VERSION=latest
MARIADB_HOST=mariadb
MYSQL_ROOT_PASSWORD=admin
SITE_NAME=erp.example.com
SITES=erp.example.com
DB_ROOT_USER=root
ADMIN_PASSWORD=admin
INSTALL_APPS=erpnext
ENTRYPOINT_LABEL=traefik.http.routers.dodock-nginx.entrypoints=web
CERT_RESOLVER_LABEL=traefik.http.routers.dodock-nginx.tls.certresolver=myresolver
HTTPS_REDIRECT_RULE_LABEL=dodock.local.no-cert-resolver=hostregexp({host:.+}
)
HTTPS_REDIRECT_ENTRYPOINT_LABEL=dodock.local.no-entrypoint=web
HTTPS_REDIRECT_MIDDLEWARE_LABEL=dodock.local.no-middleware=redirect-to-https
HTTPS_USE_REDIRECT_MIDDLEWARE_LABEL=dodock.local-no-redirect-middleware=https
$ cat /etc/hosts
127.0.0.1 erp.example.com
$ docker-compose --project-name dokostuxtower up -d
Building with native build. Learn about native build in Compose here: docker compose build | Docker Documentation
Creating network « dokostuxtower_default » with the default driver
Creating volume « dokostuxtower_mariadb-vol » with default driver
Creating volume « dokostuxtower_redis-cache-vol » with default driver
Creating volume « dokostuxtower_redis-queue-vol » with default driver
Creating volume « dokostuxtower_redis-socketio-vol » with default driver
Creating volume « dokostuxtower_assets-vol » with default driver
Creating volume « dokostuxtower_sites-vol » with default driver
Creating volume « dokostuxtower_cert-vol » with default driver
Creating dokostuxtower_redis-queue_1 … done
Creating dokostuxtower_redis-socketio_1 … done
Creating dokostuxtower_traefik_1 … done
Creating dokostuxtower_mariadb_1 … done
Creating dokostuxtower_redis-cache_1 … done
Creating dokostuxtower_webserver_1 … done
Creating dokostuxtower_worker-short_1 … done
Creating dokostuxtower_scheduler_1 … done
Creating dokostuxtower_worker-default_1 … done
Creating dokostuxtower_worker-long_1 … done
Creating dokostuxtower_socketio_1 … done
Creating dokostuxtower_python_1 … done
Creating dokostuxtower_site-creator_1 … done
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b6f6c4f3a26 registry.gitlab.com/dokos/dokidocker/dokos-worker:latest « docker-entrypoint.s… » 6 minutes ago Exited (1) 5 minutes ago dokostuxtower_site-creator_1
d490b09bd16d registry.gitlab.com/dokos/dokidocker/dokos-worker:latest « docker-entrypoint.s… » 6 minutes ago Up 6 minutes 8000/tcp dokostuxtower_python_1
698ce76efe55 registry.gitlab.com/dokos/dokidocker/dodock-socketio:latest « docker-entrypoint.s… » 7 minutes ago Up 6 minutes dokostuxtower_socketio_1
7b4db7b5545e registry.gitlab.com/dokos/dokidocker/dokos-worker:latest « docker-entrypoint.s… » 7 minutes ago Up 6 minutes 8000/tcp dokostuxtower_worker-default_1
03894b176e1b registry.gitlab.com/dokos/dokidocker/dokos-worker:latest « docker-entrypoint.s… » 7 minutes ago Up 6 minutes 8000/tcp dokostuxtower_worker-long_1
ed1f85ba64ad registry.gitlab.com/dokos/dokidocker/dokos-worker:latest « docker-entrypoint.s… » 7 minutes ago Up 6 minutes 8000/tcp dokostuxtower_worker-short_1
cf20fa9046a7 registry.gitlab.com/dokos/dokidocker/dokos-worker:latest « docker-entrypoint.s… » 7 minutes ago Up 6 minutes 8000/tcp dokostuxtower_scheduler_1
09f26c83e18d registry.gitlab.com/dokos/dokidocker/dokos-nginx:latest « /docker-entrypoint.… » 7 minutes ago Up 7 minutes 80/tcp dokostuxtower_webserver_1
ee01f9444fae traefik:v2.2 « /entrypoint.sh --lo… » 7 minutes ago Up 6 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp dokostuxtower_traefik_1
94b393b9f14b mariadb:10.3 « docker-entrypoint.s… » 7 minutes ago Up 7 minutes 3306/tcp dokostuxtower_mariadb_1
15e5a1de2dc3 redis:latest « docker-entrypoint.s… » 7 minutes ago Up 7 minutes 6379/tcp dokostuxtower_redis-queue_1
8957e6f304f1 redis:latest « docker-entrypoint.s… » 7 minutes ago Up 7 minutes 6379/tcp dokostuxtower_redis-cache_1
59ad87dbfca2 redis:latest « docker-entrypoint.s… » 7 minutes ago Up 7 minutes 6379/tcp dokostuxtower_redis-socketio_1
$ ss -ntple
LISTEN 0 4096 0.0.0.0:80 0.0.0.0:* ino:5701496 sk:1002 cgroup:/ ↔
Donc visiblement le serveur est bien lancé, mais il y a un problème quelque part. Une idée ?
Remi
FĂ©vrier 12, 2021, 3:59
2
Bonjour,
Je viens aussi d’essayer en enlevant les paramètres =web etc. à la fin des lignes, ça ne répare pas le problème.
Une idée svp ?
Bonjour RĂ©mi,
Désolé je n’ai pas eu le temps de me pencher sur l’image Docker depuis quelques temps et la version proposée n’est qu’un prototype, non utilisé en production pour le moment.
J’essaye de regarder ça au cours des prochains jours.
En attendant, je conseille plutĂ´t une installation classique sur une VM linux.
Remi
FĂ©vrier 12, 2021, 7:56
4
Bonjour Charles-Henry,
Ok merci pour votre réponse. Oui j’ai vu que c’est un prototype, et en même temps docker est tellement pratique
J’ai des connaissances en docker avec le DockerFile, mais pas avec une architecture complexe comme ça. Du coup là je vois pas trop ce qui coince.
N’hésitez pas à me tenir au courant dès que vous aurez pu essayer.
Bonne soirée
Remi
FĂ©vrier 17, 2021, 10:42
5
Bonjour Ă vous,
Après avoir encore essayé d’installer Dokos avec Docker, j’ai essayé hier de l’installer sur une machine virtuelle virtualbox et pas mal d’erreur à l’installation.
J’aimerais vraiment réussir l’installation sur Docker, parce que c’est largement plus léger qu’une VM virtualbox… Est ce quelqu’un aurait réussi par hasard ?
Bonne journée
1 « J'aime »
Salut effectivement, l’installation docker est un must have ! J’ai tenté sans succès mais j’ai l’impression d’y être presque !
La documentation ne semble pas à jour car il n’y a pas de fichier cli.py
dans le repo .
Il n’y a pas non plus d’images docker dans le registry de Gitlab.
J’ai dû builder les images en local, ça se fait avec docker build -t image:latest -f vers/le/Dockerfile .
à la racine du repo. J’ai passé node en version 17.9.0.
Il y a des erreurs au moment de la création du container dodock-nginx
comme Could not resolve "./lib/moment.js"
. Il semble qu’il manque le fichier dodock/frappe/develop/frappe/public/js/lib/moment.js
.
En les ignorant, le lance pour tester docker-compose up -d
avec succès sauf pour le service webserver
(dokos-nginx).
Les logs docker logs -f dokos-webserver
donnent l’erreur suivante :
rsync: [sender] link_stat "/var/www/html/assets/js" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1333) [sender=3.2.3]
Une idée ?
Voici mon docker-compose.yml
:
version: "3"
services:
traefik:
image: "traefik:v2.2"
container_name: dokos-traefik
command:
- "--log.level=DEBUG"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.email=${LETSENCRYPT_EMAIL}"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
labels:
# enable traefik
- "traefik.enable=true"
# global redirect to https for production only
# - "${HTTPS_REDIRECT_RULE_LABEL}"
# - "${HTTPS_REDIRECT_ENTRYPOINT_LABEL}"
# - "${HTTPS_REDIRECT_MIDDLEWARE_LABEL}"
# middleware redirect for production only
# - "${HTTPS_USE_REDIRECT_MIDDLEWARE_LABEL}"
ports:
- "80:80"
- "443:443"
volumes:
- cert-vol:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
webserver:
image: dokos-nginx:${DOKOS_VERSION}
container_name: dokos-webserver
restart: on-failure
environment:
- DODOCK_PY=python
- DODOCK_PY_PORT=8000
- DODOCK_SOCKETIO=socketio
- SOCKETIO_PORT=9000
labels:
- "traefik.enable=true"
- "traefik.http.routers.dokos-nginx.rule=Host(${SITES})"
- "${ENTRYPOINT_LABEL}"
- "${CERT_RESOLVER_LABEL}"
- "traefik.http.services.dokos-nginx.loadbalancer.server.port=80"
volumes:
- sites-vol:/var/www/html/sites:rw
- assets-vol:/assets:rw
python:
image: dokos-worker:${DOKOS_VERSION}
container_name: dokos-python
restart: on-failure
environment:
- MARIADB_HOST=${MARIADB_HOST}
- REDIS_CACHE=redis-cache:6379
- REDIS_QUEUE=redis-queue:6379
- REDIS_SOCKETIO=redis-socketio:6379
- SOCKETIO_PORT=9000
- AUTO_MIGRATE=1
depends_on:
- redis-queue
- redis-cache
- socketio
- mariadb
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
- assets-vol:/home/dodock/dodock-bench/sites/assets:rw
socketio:
image: dodock-socketio:${DODOCK_VERSION}
container_name: dokos-socketio
restart: on-failure
depends_on:
- redis-socketio
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
- logs-vol:/home/dodock/dodock-bench/logs:rw
worker-default:
image: dokos-worker:${DOKOS_VERSION}
container_name: dokos-worker-default
restart: on-failure
command: worker
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
- logs-vol:/home/dodock/dodock-bench/logs:rw
worker-short:
image: dokos-worker:${DOKOS_VERSION}
container_name: dokos-worker-short
restart: on-failure
command: worker
environment:
- WORKER_TYPE=short
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
worker-long:
image: dokos-worker:${DOKOS_VERSION}
container_name: dokos-worker-long
restart: on-failure
command: worker
environment:
- WORKER_TYPE=long
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
- logs-vol:/home/dodock/dodock-bench/logs:rw
scheduler:
image: dokos-worker:${DOKOS_VERSION}
container_name: dokos-scheduler
restart: on-failure
command: schedule
depends_on:
- redis-queue
- redis-cache
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
- logs-vol:/home/dodock/dodock-bench/logs:rw
redis-cache:
image: redis:latest
container_name: dokos-redis-cache
restart: on-failure
volumes:
- redis-cache-vol:/data
redis-queue:
image: redis:latest
container_name: dokos-redis-queue
restart: on-failure
volumes:
- redis-queue-vol:/data
redis-socketio:
image: redis:latest
container_name: dokos-redis-socketio
restart: on-failure
volumes:
- redis-socketio-vol:/data
mariadb:
image: mariadb:10.3
container_name: dokos-mariadb
restart: on-failure
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
volumes:
- ./installation/dodock-mariadb.cnf:/etc/mysql/conf.d/dodock.cnf
- mariadb-vol:/var/lib/mysql
site-creator:
image: dokos-worker:${DOKOS_VERSION}
container_name: dokos-site-creator
restart: "no"
command: new
depends_on:
- python
environment:
- SITE_NAME=${SITE_NAME}
- DB_ROOT_USER=${DB_ROOT_USER}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
- INSTALL_APPS=${INSTALL_APPS}
volumes:
- sites-vol:/home/dodock/dodock-bench/sites:rw
- logs-vol:/home/dodock/dodock-bench/logs:rw
volumes:
mariadb-vol:
redis-cache-vol:
redis-queue-vol:
redis-socketio-vol:
assets-vol:
sites-vol:
cert-vol:
logs-vol:
Et mon .env
:
LETSENCRYPT_EMAIL=***@***.**
DOKOS_VERSION=latest
DODOCK_VERSION=latest
MARIADB_HOST=mariadb
MYSQL_ROOT_PASSWORD=admin
SITE_NAME=localhost
SITES=`localhost`
DB_ROOT_USER=root
ADMIN_PASSWORD=admin
INSTALL_APPS=erpnext
ENTRYPOINT_LABEL=traefik.http.routers.dodock-nginx.entrypoints=websecure
CERT_RESOLVER_LABEL=traefik.http.routers.dodock-nginx.tls.certresolver=myresolver
HTTPS_REDIRECT_RULE_LABEL=
HTTPS_REDIRECT_ENTRYPOINT_LABEL=
HTTPS_REDIRECT_MIDDLEWARE_LABEL=
HTTPS_USE_REDIRECT_MIDDLEWARE_LABEL=
Bonjour, je crois bien que la documentation a été écrite par rapport à la branche develop
du repo, des changements qui n’ont pas encore été fusionnés avec master
. Peut-être que l’installation sera plus simple en essayant avec cette branche develop
?
Merci @corentin pour ta réponse malheureusement j’ai réessayé sur la branche develop
et j’obtiens la même erreur dans les logs du container dokos-nginx
:
rsync: [sender] link_stat "/var/www/html/assets/js" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1333) [sender=3.2.3]
La plupart des erreurs de build sont maintenant réglées mais je remarque qu’au moment de builder dokos-nginx
j’obtiens les avertissements suivants :
WARN Cannot connect to redis_cache to update assets_json
WARN Cannot connect to redis_cache to update assets_json
WARN Cannot connect to redis_cache to update assets_json
warning " > @frappe/esbuild-plugin-postcss2@0.1.3" has unmet peer dependency "less@^4.x".
warning " > @frappe/esbuild-plugin-postcss2@0.1.3" has unmet peer dependency "stylus@^0.x".
J’ai l’impression qu’on se rapproche… Une idée ?
1 « J'aime »
Il me semble que la branche utilisée par défaut pour Dokos/Dodock est develop
, qui ne fonctionne pas encore très bien . Donc il faut utiliser la branche master
de Dokos et Dodock (mais rester sur develop
pour dokidocker).
Peut-être qu’il faut ajouter le paramètre --build-arg GIT_BRANCH=master
aux commandes docker build
Je ne peux pas encore tester tout ça malheureusement, mais dès que j’ai le temps je testerai et j’essaierai d’améliorer la documentation.
Je ne me souviens plus très bien du fonctionnement des conteneurs ensemble, je crois bien que la seule variable qu’il ne faille changer soit GIT_BRANCH
.
@lecoqlibre
jfg
Août 29, 2022, 5:16
10
Bonjour Ă tous,
De mon coté, j’ai aussi un bug lors du docker-compose
Pulling scheduler (registry.gitlab.com/dokos/dokidocker/dokos-worker:latest)...
ERROR: manifest for registry.gitlab.com/dokos/dokidocker/dokos-worker:latest not found: manifest unknown: manifest unknown
Si vous avez une idée de la procédure à suivre pour démarrer l’application en mode docker avec la version à jour je suis preneur ;).
Merci d’avance !
Bonjour @jfg ,
Nous n’avons malheureusement pas eu le temps de nous remettre sur la génération d’images Docker pour la dernière version.
Le plus simple à ce jour est d’installer Dokos de manière plus classique dans une VM: Installation rapide | Dokos
Bonne fin de journée
jfg
Août 31, 2022, 2:41
12
Bonjour @chdecultot ,
Merci pour ce retour rapide.
Entendu, mais cela va nécessiter un VPS dédié en attendant.
Je vais être patient car la solution docker me permet de réduire l’infrastructure dédié à la solution.
Merci pour la solution.
Pour de la prod (K8S ou 3S), c’est pas vraiment adapté.
On essaie sous Portainer/Docker … mais le compose fait vraiment peur.
Une image officielle dans le docker hub est-elle prévue ?
Merci pour votre temps passé.
Bonjour, entre-temps on a eu le temps de développer une installation individuelle simplifiée sous Docker :
Installation Docker · Dokos Documentation
Pour l’instant on a eu peu de retours sur cette méthode, mais on a bien une image Dokos disponible registry.gitlab.com/dokos/dokos:latest
(liste ici : Container Registry · Dokos / Dokos · GitLab )
Pour aller plus loin :
merci corentin.
Mon niveau sous docker est moyen, donc je vais testouiller Ă mon niveau.
Ce qui est assez rebutant, dans le docker-composer proposé, c’est l’emploi d’Anchor, et de multiple éléments (section).
Pourquoi pas tout dans une seul image avec un volume, quelques variables pour paramètrer cette image et zou … , non ? (la je vois plein de module dokos_mailer, dokos_scheduler, dokos_worker, dokos_worker_short, dokos_********** : pourquoi autant de section ?)
Cette image semble déjà plus lisible … pour un newbie comme moi:
version: "2.3"
services:
# https://docs.docker.com/docker-hub/builds/automated-testing/
sut:
build:
context: ./test
dockerfile: Dockerfile
command: sh /docker_test.sh
# Only for travis-ci, do not name test container in dockerhub
container_name: sut
depends_on:
- dokos_db
- dokos_app
- dokos_web
- dokos_scheduler
- dokos_worker_default
- dokos_worker_long
- dokos_worker_short
- dokos_socketio
This file has been truncated. show original