Ajout d'un readme et d'un docker-compose #2

Merged
nemunaire merged 3 commits from task/docker-compose into master 2020-11-21 23:17:43 +00:00
4 changed files with 89 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.data

14
README.md Normal file
View File

@ -0,0 +1,14 @@
# Halo-Battle
## Développer
HB peut petre lancé localement via un docker. Pour cela, vous devez avoir installé Docker et docker-compose.
une fois installé, lancez un `docker-compouse up` à la racine du repo. Une fois que tout à boot, vous devez
injecter le code SQL avec `docker exec -i game_mariadb_1 mysql --user=hb --password=hb hb_game < schema.sql`
HB est alors disponible sur http://localhost:8080.
À la création du compte, aucun email n'est envoyé. Pour récupérer votre code de confirmation, vous devez
vous connecter au serveur MySQL via `docker exec -it game_mariadb_1 mysql --user=hb --password=hb hb_game`
et récupérer votre jeton d'activation via `select id_activ from user_inscriptions WHERE pseudo LIKE 'VOTRE_PSEUDO_A_REMPLACER';`
une fois l'ID récupérer, rendez-vous à l'adresse http://localhost:8080/?p=validation&i=VOTRE_ID (pensez
bien à modifier l'id dans l'URL).

53
docker-compose.yml Normal file
View File

@ -0,0 +1,53 @@
version: '3.2'
networks:
halonet:
driver: bridge
services:
mariadb:
restart: always
image: mariadb:10-focal

idem image nginx, on a pas envie de gérer les versions spécifiques :

image: mariadb:10-focal
idem image nginx, on a pas envie de gérer les versions spécifiques : ```yaml image: mariadb:10-focal ```
networks:
- halonet
volumes:
- .data:/var/lib/mysql
nemunaire marked this conversation as resolved
Review

Ça nous intéresse pas de récupérer les datas de MySQL dans un dossier. Tu vois une utilité ?

  - /var/lib/mysql

serait suffisant pour moi

Ça nous intéresse pas de récupérer les datas de MySQL dans un dossier. Tu vois une utilité ? ```yaml - /var/lib/mysql ``` serait suffisant pour moi
Review

J'utilise beaucoup docker et suis donc habitué à régulièrement faire sur ma machine docker rm $(docker -a -q) suivi d'un docker rmi $(docker images) histoire de pas cramer mon disque. Ce .data/ me protège de ce genre de manœuvre.

De plus, ça permet de facilement tester les changements de versions de mariadb, sans avoir besoin de faire un mysql_dump.

Bref, c'est pas idéale, mais je me dit que c'est pas génant ? Surtout que je l'ajoute dans le .gitignore et le .dockerignore. Your call :)

J'utilise beaucoup docker et suis donc habitué à régulièrement faire sur ma machine `docker rm $(docker -a -q)` suivi d'un `docker rmi $(docker images)` histoire de pas cramer mon disque. Ce `.data/` me protège de ce genre de manœuvre. De plus, ça permet de facilement tester les changements de versions de mariadb, sans avoir besoin de faire un `mysql_dump`. Bref, c'est pas idéale, mais je me dit que c'est pas génant ? Surtout que je l'ajoute dans le `.gitignore` et le `.dockerignore`. Your call :)
Review

Ça me va.

Ça me va.
environment:
- MYSQL_USER=hb
- MYSQL_PASSWORD=hb
- MYSQL_ROOT_PASSWORD=hb
- MYSQL_DATABASE=hb_game
hb:
image: hb
container_name: hb
depends_on:
- mariadb
networks:
- halonet
volumes:
- ./htdocs:/usr/src/hb-main/htdocs:rw
- ./onyx2:/usr/src/hb-main/onyx2:rw
# make cache and compile writable + don't add file to local host
- /usr/src/hb-main/onyx2/cache
- /usr/src/hb-main/onyx2/log
- /usr/src/hb-main/onyx2/modules/templates/compile
environment:
- MYSQL_DATABASE=hb_game
- MYSQL_HOST=mariadb
- MYSQL_USER=hb
- MYSQL_PASSWORD=hb
- DISABLE_TLS=true
- DEV=true
nginx:
image: nginx:1-alpine
image: nginx:1-alpine

Cela permettra d'éviter d'avoir à changer le docker-compose à chaque nouvelle version de nginx, 1-alpine devrait toujours marcher, connaissant nginx.

```yaml image: nginx:1-alpine ``` Cela permettra d'éviter d'avoir à changer le docker-compose à chaque nouvelle version de nginx, `1-alpine` devrait toujours marcher, connaissant `nginx`.
depends_on:
- hb
networks:
- halonet
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./htdocs:/usr/src/hb-main/htdocs:ro
ports:
- "8080:80"

21
nginx.conf Normal file
View File

@ -0,0 +1,21 @@
server {
listen 80;
server_name localhost;
root /usr/src/hb-main/htdocs;
location / {
index index.php;

Plutôt :

    index index.php;
    try_files $uri $uri/ /index.php;

Il n'y a pas besoin des $query_string pour nous.

Plutôt : ```conf index index.php; try_files $uri $uri/ /index.php; ``` Il n'y a pas besoin des `$query_string` pour nous.
try_files $uri $uri/ /index.php;
}
location ~* \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Nigel marked this conversation as resolved
Review

Il faudrait ajouter :

        fastcgi_param HTTP_HOST $server_name;
        fastcgi_param REMOTE_ADDR $remote_addr;
Il faudrait ajouter : ```conf fastcgi_param HTTP_HOST $server_name; fastcgi_param REMOTE_ADDR $remote_addr; ```
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param HTTP_HOST $server_name;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass hb:9000;
}
}