Docker instruction before Docker compose

This commit is contained in:
Alexandre Iooss 2020-09-01 14:03:06 +02:00
parent bf7b187048
commit 55be6be6c5
2 changed files with 37 additions and 23 deletions

View File

@ -15,12 +15,12 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
# Instal PyPI requirements
COPY requirements.txt /code/
RUN pip3 install -r /code/requirements.txt --no-cache-dir
COPY requirements.txt /var/www/note_kfet/
RUN pip3 install -r /var/www/note_kfet/requirements.txt --no-cache-dir
# Copy code
WORKDIR /code
COPY . /code/
WORKDIR /var/www/note_kfet
COPY . /var/www/note_kfet/
EXPOSE 8080
ENTRYPOINT ["/code/entrypoint.sh"]
ENTRYPOINT ["/var/www/note_kfet/entrypoint.sh"]

View File

@ -144,30 +144,44 @@ Sinon vous pouvez suivre les étapes ici.
Il est possible de travailler sur une instance Docker.
1. Cloner le dépôt là où vous voulez :
Pour construire l'image Docker `nk20`,
$ git clone git@gitlab.crans.org:bde/nk20.git
```
git clone https://gitlab.crans.org/bde/nk20/ && cd nk20
docker build . -t nk20
```
2. Copiez le fichier `.env_example` à la racine du projet vers le fichier `.env`,
et mettez à jour vos variables d'environnement
Ensuite pour lancer la note Kfet en tant que vous (option `-u`),
l'exposer sur son port 80 (option `-p`) et monter le code en écriture (option `-v`),
3. Dans le fichier `docker_compose.yml`, qu'on suppose déjà configuré,
ajouter les lignes suivantes, en les adaptant à la configuration voulue :
```
docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd):/var/www/note_kfet/" -p 80:8080 nk20
```
nk20:
build: /chemin/vers/nk20
volumes:
- /chemin/vers/nk20:/code/
env_file: /chemin/vers/nk20/.env
restart: always
labels:
- traefik.domain=ndd.example.com
- traefik.frontend.rule=Host:ndd.example.com
- traefik.port=8000
Si vous souhaitez lancer une commande spéciale, vous pouvez l'ajouter à la fin, par exemple,
4. Enjoy :
```
docker run -it --rm -u $(id -u):$(id -g) -v "$(pwd):/var/www/note_kfet/" -p 80:8080 nk20 python3 ./manage.py createsuperuser
```
$ docker-compose up -d nk20
#### Avec Docker Compose
On vous conseilles de faire un fichier d'environnement `.env` en prenant exemple sur `.env_example`.
Pour par exemple utiliser le Docker de la note Kfet avec Traefik pour réaliser le HTTPS,
```YAML
nk20:
build: /chemin/vers/le/code/nk20
volumes:
- /chemin/vers/le/code/nk20:/var/www/note_kfet/
env_file: /chemin/vers/le/code/nk20/.env
restart: always
labels:
- traefik.domain=ndd.example.com
- traefik.frontend.rule=Host:ndd.example.com
- traefik.port=8080
```
### Lancer un serveur de développement