https://github.com/kevin-doolaeghe/docker-compose-website
Serveur Web (NodeJS / ReactJS / MySQL) fonctionnant sous Docker
https://github.com/kevin-doolaeghe/docker-compose-website
docker-compose fullstack-development learning-by-doing
Last synced: about 2 months ago
JSON representation
Serveur Web (NodeJS / ReactJS / MySQL) fonctionnant sous Docker
- Host: GitHub
- URL: https://github.com/kevin-doolaeghe/docker-compose-website
- Owner: kevin-doolaeghe
- Created: 2021-05-13T11:07:16.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-07-07T08:09:07.000Z (almost 5 years ago)
- Last Synced: 2023-07-14T14:27:27.290Z (almost 3 years ago)
- Topics: docker-compose, fullstack-development, learning-by-doing
- Language: JavaScript
- Homepage:
- Size: 410 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Serveur Web (Node.js / React.js / MySQL) fonctionnant sous Docker
## Développement Web
### 1. Installation de Node.js et du gestionnaire de paquets NPM
```
sudo apt install node npm
```
### 2. Backend - Node.js
Création du répertoire de développement :
```
mkdir back
cd back
```
Initialisation du projet :
```
npm init
npm install express mysql cors
touch index.js
```
### 3. Frontend - React.js
Initialisation de l'application React :
```
npx create-react-app front
cd front
```
Ajout du client HTTP Axios pour consommer des API :
```
npm install axios
```
* Démarrer en mode développement :
```
cd front
npm start
```
* Déployer en production :
```
cd front
npm run build
```
```
sudo npm install -g serve
serve -s build
```
## Intégration avec docker-compose
### 1. Installation
Télécharger la dernière version stable de `docker-compose` :
```
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```
Appliquer les droits d'exécution au binaire :
```
sudo chmod +x /usr/local/bin/docker-compose
```
Créer un lien dynamique vers le binaire :
```
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
```
Tester l'installation :
```
docker-compose --version
```
### 2. Configuration
Les containers de l'applicatif à créer sont décrit dans le fichier `docker-compose.yml` :
```
sudo nano docker-compose.yml
```
La configuration ci-dessous permet de créer deux conteneurs :
- `web` : construit à partir du fichier Dockerfile présent dans le répertoire actuel
- `redis` : une machine `alpine` issue de Docker Hub
```
version: "3.9"
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
```
### 3. Utilisation
* Créer & démarrer les services :
```
docker-compose up
```
* Créer & démarrer les services en mode détaché (tâche de fond) :
```
docker-compose up -d
```
* Arrêter & détruire les services :
```
docker-compose down
```
* Arrêter & détruire les services et les volumes :
```
docker-compose down -v
```
* Démarrer les services :
```
docker-compose start
```
* Arrêter les services :
```
docker-compose stop
```
* Détruire les services :
```
docker-compose rm
```
* Détruire les images :
```
docker-compose rmi
```
* Afficher les images crées :
```
docker-compose images
```
* Afficher les containers démarrés :
```
docker-compose ps
```