- Pour ajouter de nouvelles horaires, il faut executer ce docker-compose en local : (en ajustant le volume pour pointer vers la session désirée)
(Si la BD est pas créée, vous devez l'initialiser avec le code dans le README.md, adapté pour docker.)
-> Assurez-vous de builder votre image avant de lancer.
version: "3.8"
services:
web:
build: .
image: <repo>/rubik:latest
ports:
- "8000:3000"
volumes:
- ./db/raw/ets/2022/automne/tous:/rubik/db/raw/ets/2022/automne/tous
environment:
- [email protected]
- AIRBRAKE_PROJECT_ID=1234
- AIRBRAKE_API_KEY=1234
- [email protected]
- GA_ANALYTICS_ID=""
- GOOGLE_AD_CLIENT=""
- GOOGLE_OAUTH_CLIENT_ID=some_client_id
- GOOGLE_OAUTH_CLIENT_SECRET=some_client_secret
#- DATABASE_URL=mysql2://<username>:<pass>@<host>:<port>/<db_name>
- DATABASE_HOST=db
- RAILS_ENV=development
- SECRET_KEY_BASE=
- SENDGRID_USERNAME=apikey
- SENDGRID_PASSWORD=
- REDIS_URL=redis://redis:6379/0
networks:
- rubik_network
redis:
image: redis
ports:
- "6739:6739"
networks:
- rubik_network
db:
image: mysql:5.7
container_name: db
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
MYSQL_USER: basic_user
MYSQL_PASSWORD: db_user_pass
ports:
- "3306:3306"
volumes:
- dbdata:/var/lib/mysql
networks:
- rubik_network
volumes:
dbdata:
networks:
rubik_network:
external: true
name: rubik_network
- Ensuite, il faut exécuter la fonction suivante:
docker exec -it rubik_web_1 rails ets_pdf:etl
-
S'il y a des erreurs et que vous devez corriger les fichiers TXT, il faut se les approprier sur votre compte avec chown.
-
Après, on build l'image et on la push sur DockerHub.
Sur l'instance de production, on fait les étapes suivantes:
- On push l'image depuis DockerHub
- On change la variable d'environnement
PDF_FOLDER=db/raw/ets/2022/automne/**/*
dans le docker-compose.yaml - On relance l'instance:
DOCKER_GATEWAY_HOST="$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')" docker-compose -f production.yml up -d
- On exécute la commande:
docker exec -it rubik_web_1 rails ets_pdf:etl
- On va dans la BD et on active la nouvelle session qu'on vient de créer.