diff --git a/cryptide_project/Dockerfile b/cryptide_project/Dockerfile index fbd4dc7..591738e 100644 --- a/cryptide_project/Dockerfile +++ b/cryptide_project/Dockerfile @@ -1,22 +1,32 @@ -FROM node:14 +# Utilisez l'image Node.js LTS comme base +FROM node:14-alpine +# Définissez le répertoire de travail dans le conteneur WORKDIR /app +# Copiez le package.json et le package-lock.json dans le conteneur COPY package*.json ./ +# Installez les dépendances du projet RUN npm install +# Copiez le reste des fichiers de l'application dans le conteneur COPY . . +# Construisez l'application React RUN npm run build -EXPOSE 80 -# -# Installez express -RUN npm install express +# Utilisez l'image légère Nginx pour servir l'application construite +FROM nginx:alpine + +# Copiez les fichiers construits de l'étape précédente dans le répertoire de travail de Nginx +COPY --from=0 /app/build /usr/share/nginx/html -# Copiez le script serveur personnalisé -COPY server.js . +# Copiez la configuration Nginx personnalisée +COPY nginx.conf /etc/nginx/conf.d/default.conf + +# Exposez le port 80 pour que l'application puisse être accessible +EXPOSE 80 -# Commande pour démarrer le serveur personnalisé -CMD ["node", "server.js"] +# Définissez ENTRYPOINT pour démarrer Nginx lorsque le conteneur est lancé +ENTRYPOINT ["nginx", "-g", "daemon off;"] diff --git a/cryptide_project/nginx.conf b/cryptide_project/nginx.conf new file mode 100644 index 0000000..a1bba5b --- /dev/null +++ b/cryptide_project/nginx.conf @@ -0,0 +1,15 @@ +server { + listen 80; + + location / { + root /usr/share/nginx/html; + index index.html; + try_files $uri $uri/ /index.html; + } + + error_page 404 /index.html; + + location ~ /\. { + deny all; + } +} \ No newline at end of file diff --git a/cryptide_project/package.json b/cryptide_project/package.json index 4b35277..3e51147 100644 --- a/cryptide_project/package.json +++ b/cryptide_project/package.json @@ -1,6 +1,7 @@ { "name": "cryptide", "version": "1.0.0", + "homepage": "/containers/Crypteam-website/", "dependencies": { "@fortawesome/fontawesome-svg-core": "^6.4.2", "@fortawesome/free-regular-svg-icons": "^6.4.2", diff --git a/cryptide_project/server.js b/cryptide_project/server.js index cb7b31b..3ef9f10 100644 --- a/cryptide_project/server.js +++ b/cryptide_project/server.js @@ -8,10 +8,16 @@ const port = process.env.PORT || 80; app.use(express.static(path.join(__dirname, 'build'))); // Définir le type MIME pour les fichiers JavaScript -app.use('*.js', (req, res, next) => { +app.use('/static/js', (req, res, next) => { res.type('application/javascript; charset=utf-8'); next(); -}); +}, express.static(path.join(__dirname, 'build/static/js'))); + +// Définir le type MIME pour les fichiers CSS +app.use('/static/css', (req, res, next) => { + res.type('text/css; charset=utf-8'); + next(); +}, express.static(path.join(__dirname, 'build/static/css'))); // Route par défaut pour servir l'application React app.get('*', (req, res) => { @@ -21,4 +27,5 @@ app.get('*', (req, res) => { // Démarrer le serveur app.listen(port, () => { console.log(`Serveur en cours d'exécution sur le port ${port}`); + console.log(path.join(__dirname, 'build')) });