Skip to content
Snippets Groups Projects
Commit 561ce7c4 authored by Florentin Labelle's avatar Florentin Labelle
Browse files

Add corrections for Docker part

parent 93f146c9
No related branches found
No related tags found
No related merge requests found
...@@ -94,18 +94,17 @@ Le back est fait en Django, tu dois donc: ...@@ -94,18 +94,17 @@ Le back est fait en Django, tu dois donc:
``Attention: ne pas ajouter de fichier non désiré dans l'image (par exemple le .env ou les node_modules s'il y en a)`` ``Attention: ne pas ajouter de fichier non désiré dans l'image (par exemple le .env ou les node_modules s'il y en a)``
#### 2.2.2 Tester l'image #### 2.2.2 Tester l'image
Pour tester que le back fonctionne bien il va falloir d'abord mettre en place une base de donnée mysql, pour que le back s'y connecte. Pour tester que le back fonctionne bien il va falloir d'abord remplir un **.env** dans le dossier du back:
``` - Pensez à mettre `PRODUCTION` en `FALSE` pour utiliser du SQLite, les informations pour la BDD ne compte alors pas.
docker run -p 3306:3306 -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_USER=vroum -e MYSQL_PASSWORD=password -e MYSQL_DATABASE=vroum -d mysql
```
Puis faire tourner le back: Puis faire tourner le back:
``` ```
docker run -p 8000:8000 --env-file .env vroum-back docker run -p 8000:8000 --env-file .env vroum-back
``` ```
Attention à bien remplir le .env avec les bonnes valeur pour se connecter à la BDD.
Faire des curl pour tester que tout marche à peu près bien. Faire des curl pour tester que tout marche à peu près bien.
Pour tester le back, tu peux ausi utiliser le front en lançant les deux conteneurs simultanément.
#### 2.2.3 Challenge supplémentaire (Facultatif et plus dur que pour le front) #### 2.2.3 Challenge supplémentaire (Facultatif et plus dur que pour le front)
Il est souvent considéré comme une mauvaise pratique d'avoir des conteneurs qui tournent avec l'utilisateur **root** en production. Il est souvent considéré comme une mauvaise pratique d'avoir des conteneurs qui tournent avec l'utilisateur **root** en production.
Vérifie que ce n'est pas le cas ou alors fait les changements nécéssaires. Vérifie que ce n'est pas le cas ou alors fait les changements nécéssaires.
......
REACT_APP_API_URL=http://localhost:8000
REACT_APP_LOGIN_ROUTE=/auth/login
REACT_APP_LOGOUT_ROUTE=/auth/logout
REACT_APP_CLIENT_URL=http://localhost:8080
\ No newline at end of file
REACT_APP_API_URL=http://localhost:8000
REACT_APP_LOGIN_ROUTE=/auth/login
REACT_APP_LOGOUT_ROUTE=/auth/logout
REACT_APP_CLIENT_URL=http://localhost:8080
\ No newline at end of file
BACK_ROOT=http://localhost:8000/api
FRONT_ROOT=http://localhost:8080
CLIENT_ID=clientid
CLIENT_SECRET=clientsecret
PRODUCTION=FALSE
ALLOWED_HOSTS=localhost
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
SALT=verylongrandomstring
\ No newline at end of file
BACK_ROOT=http://localhost:8000/api
FRONT_ROOT=http://localhost:8080
CLIENT_ID=clientid
CLIENT_SECRET=clientsecret
PRODUCTION=FALSE
ALLOWED_HOSTS=localhost
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
SALT=verylongrandomstring
\ No newline at end of file
FROM python:3.8
RUN useradd -m vroum
USER vroum
WORKDIR /home/vroum
COPY --chown=vroum:vroum requirements.txt /home/vroum/
RUN pip install -r requirements.txt
COPY --chown=vroum:vroum back/ /home/vroum/back/
COPY --chown=vroum:vroum car/ /home/vroum/car/
COPY --chown=vroum:vroum squad/ /home/vroum/squad/
COPY --chown=vroum:vroum trip/ /home/vroum/trip/
COPY --chown=vroum:vroum user/ /home/vroum/user/
COPY --chown=vroum:vroum manage.py /home/vroum/manage.py
ENTRYPOINT python3 manage.py makemigrations \
&& python3 manage.py migrate \
&& python3 manage.py runserver 0.0.0.0:8000
BACK_ROOT=http://localhost:8000/api
FRONT_ROOT=http://localhost:8080
CLIENT_ID=clientid
CLIENT_SECRET=clientsecret
PRODUCTION=FALSE
ALLOWED_HOSTS=localhost
DATABASE_NAME=
DATABASE_USER=
DATABASE_PASSWORD=
DATABASE_HOST=
SALT=verylongrandomstring
\ No newline at end of file
FROM python:3.8-alpine3.15 FROM python:3.8-alpine3.15
WORKDIR /back/ RUN adduser -D vroum
USER vroum
WORKDIR /home/vroum
# Required apk packages for building of mysqlclient and cffi python packages # Required apk packages for building of mysqlclient and cffi python packages
RUN apk update \ RUN apk update \
&& apk add --virtual build-deps gcc musl-dev mariadb-dev libffi-dev && apk add --virtual build-deps gcc musl-dev mariadb-dev libffi-dev
COPY requirements.txt /back/ COPY requirements.txt /home/vroum
RUN pip install -r requirements.txt RUN pip install -r requirements.txt
# Remove apk packages that were only necessary at build time # Remove apk packages that were only necessary at build time
RUN apk del build-deps RUN apk del build-deps
COPY ./ /back/ COPY --chown=vroum:vroum back/ /home/vroum/back/
COPY --chown=vroum:vroum car/ /home/vroum/car/
COPY --chown=vroum:vroum squad/ /home/vroum/squad/
COPY --chown=vroum:vroum trip/ /home/vroum/trip/
COPY --chown=vroum:vroum user/ /home/vroum/user/
COPY --chown=vroum:vroum manage.py /home/vroum/manage.py
ENTRYPOINT python3 manage.py makemigrations \ ENTRYPOINT python3 manage.py makemigrations \
&& python3 manage.py migrate \ && python3 manage.py migrate \
&& python3 manage.py runserver 0.0.0.0:8000 && python3 manage.py runserver 0.0.0.0:8000
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment