Skip to content

Commit f2e59a5

Browse files
author
Benoît Fonty
committed
dev: ajout de donfiguration docker pour développer sans rien installersur sonposte
1 parent cdd3b5d commit f2e59a5

File tree

10 files changed

+136
-1
lines changed

10 files changed

+136
-1
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ node_modules
44
.env
55

66
db/data
7+
8+
docker-compose/.env

app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,4 @@ def add_header(r):
157157

158158

159159
if __name__ == '__main__':
160-
app.run()
160+
app.run(debug = True, host='0.0.0.0')

docker-compose/.env.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
POSTGRES_PASSWORD=<password>

docker-compose/README.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Développer en local sans installer quoi que ce soit
2+
3+
Le seul prérequis est d'avoir docker et docker-compose installé sur votre machine.
4+
5+
le script `restart.sh` va démarrer trois containers:
6+
- une instance de base de données
7+
- Une serveur python
8+
- Un client nodejs
9+
10+
Ces trois containers vont monter le répertoire de développement en volume.
11+
Toutes les modifications effectuées dans le répertoire sont visibles directement dans les trois serveurs de dev.
12+
13+
## Configuration
14+
15+
### Configuration de la base de données
16+
17+
Il faut copier le fichier `./docker-compose/.env.sample` vers `./docker-compose/.env` et renseigner le mot de passe d'accès à la base de données.
18+
19+
### Configuration du serveur
20+
21+
le fichier de donfiguration `./config.csv` doit être renseigné comme suit:
22+
23+
```
24+
postgres
25+
<mot de passe base de données>
26+
postgres
27+
dvf_202004
28+
29+
```
30+
31+
### Configuration du client
32+
33+
Le fichier `./.env` doit être configuré comme suit:
34+
35+
```
36+
API_URL=http://server:5000/api
37+
PORT=3000
38+
39+
```
40+
41+
## Alimentation de la base de données
42+
43+
La commande executée pour alimenter la base de données nécessite d'être lancée depuis ce serveur.
44+
45+
Voici les étapes:
46+
47+
- `docker exec -it postgres bash`
48+
- `cd /home/dvfapp`
49+
50+
A partir de ce moment là on se trouve dans le container de base de données au niveau du répertoire des sources et la suite ne change pas.
51+
52+
- `cd db`
53+
- `./build_db.sh`
54+
55+
**Attention**: Le batch `build_db.sh` ne va pas fonctionner si le serveur est connecté à la base de données. Pour éviter celà, quittez la webapp sur vos browsers, redémarrez l'ensemble (`restart.sh`) et lancez le script.

docker-compose/dockercompose.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
version: '3'
2+
services:
3+
postgres:
4+
build: ./postgres
5+
image: dvfapp-postgres:latest
6+
container_name: postgres
7+
environment:
8+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
9+
volumes:
10+
- ./data:/var/lib/postgresql/data
11+
- ../:/home/dvfapp
12+
server:
13+
build: ./server
14+
image: dvfapp-server:latest
15+
container_name: server
16+
volumes:
17+
- ../:/home/dvfapp
18+
links:
19+
- postgres
20+
webapp:
21+
build: ./webapp
22+
image: dfvapp-webapp:latest
23+
container_name: webapp
24+
volumes:
25+
- ../:/home/dvfapp
26+
links:
27+
- server
28+
ports:
29+
- 3000:3000
30+

docker-compose/postgres/Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM postgres:13.0
2+
3+
RUN \
4+
apt update && \
5+
# see https://github.com/debuerreotype/docker-debian-artifacts/issues/46
6+
touch /usr/share/man/man1/sh.distrib.1.gz && \
7+
apt upgrade -yy -q && \
8+
apt install -y wget sudo curl
9+
10+
RUN curl -sL https://deb.nodesource.com/setup_15.x | bash - && \
11+
apt-get install -y nodejs
12+
13+
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - && \
14+
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list && \
15+
sudo apt-get install -y yarn
16+
17+
RUN apt clean autoclean && rm -rf /var/lib/apt/* /var/cache/apt/*
18+

docker-compose/restart.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
DOCKER_COMPOSE_FILE=dockercompose.yml
2+
3+
docker-compose -f ${DOCKER_COMPOSE_FILE} down
4+
docker-compose -f ${DOCKER_COMPOSE_FILE} build
5+
docker-compose -f ${DOCKER_COMPOSE_FILE} up -d

docker-compose/server/Dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM python:3.9
2+
3+
RUN pip install Flask
4+
RUN pip install pandas
5+
RUN pip install SQLAlchemy
6+
RUN pip install psycopg2-binary
7+
8+
VOLUME /home/dvfapp
9+
10+
WORKDIR /home/dvfapp
11+
12+
ENTRYPOINT ["python", "app.py"]

docker-compose/webapp/Dockerfile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FROM node:latest
2+
3+
COPY entrypoint.sh /entrypoint.sh
4+
RUN ["chmod", "+x", "/entrypoint.sh"]
5+
6+
WORKDIR /home/dvfapp
7+
8+
ENTRYPOINT ["/entrypoint.sh"]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
3+
yarn
4+
yarn start

0 commit comments

Comments
 (0)