diff --git a/.drone.yml b/.drone.yml index 6f5bf84..4fea219 100644 --- a/.drone.yml +++ b/.drone.yml @@ -31,4 +31,33 @@ steps: settings: sonar_host: https://codefirst.iut.uca.fr/sonar/ sonar_token: - from_secret: SECRET_SONAR_LOGIN_CRYPTIDE \ No newline at end of file + from_secret: SECRET_SONAR_LOGIN_CRYPTIDE + + +# + - name: container-web + image: plugins/docker + settings: + dockerfile: ./cryptide_project/Dockerfile + context: ./cryptide_project + registry: hub.codefirst.iut.uca.fr + repo: hub.codefirst.iut.uca.fr/thomas.chazot2/cryptide/web + username: + from_secret: SECRET_REGISTRY_USERNAME + password: + from_secret: SECRET_REGISTRY_PASSWORD + #depends_on: [ build ] + + + +#container deployment + - name: deploy-server-containers + image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest + environment: + IMAGENAME: hub.codefirst.iut.uca.fr/thomas.chazot2/cryptide/web:latest + CONTAINERNAME: website + COMMAND: create + OVERWRITE: true + #PRIVATE: true + ADMINS: thomaschazot2,pierreferreira,baptistemarcel + depends_on: [ container-web ] diff --git a/cryptide_project/Dockerfile b/cryptide_project/Dockerfile new file mode 100644 index 0000000..fbd4dc7 --- /dev/null +++ b/cryptide_project/Dockerfile @@ -0,0 +1,22 @@ +FROM node:14 + +WORKDIR /app + +COPY package*.json ./ + +RUN npm install + +COPY . . + +RUN npm run build + +EXPOSE 80 +# +# Installez express +RUN npm install express + +# Copiez le script serveur personnalisé +COPY server.js . + +# Commande pour démarrer le serveur personnalisé +CMD ["node", "server.js"] diff --git a/cryptide_project/htaccess b/cryptide_project/htaccess new file mode 100644 index 0000000..cf3d09a --- /dev/null +++ b/cryptide_project/htaccess @@ -0,0 +1,9 @@ + + ForceType text/css + Header set Content-Type "text/css" + + + + ForceType application/javascript + Header set Content-Type "application/javascript" + diff --git a/cryptide_project/serve.json b/cryptide_project/serve.json new file mode 100644 index 0000000..c454818 --- /dev/null +++ b/cryptide_project/serve.json @@ -0,0 +1,6 @@ +{ + "headers": [ + { "source": "**/*.js", "headers": [{ "key": "Content-Type", "value": "application/javascript; charset=utf-8" }] } + ] +} + diff --git a/cryptide_project/server.js b/cryptide_project/server.js new file mode 100644 index 0000000..cb7b31b --- /dev/null +++ b/cryptide_project/server.js @@ -0,0 +1,24 @@ +const express = require('express'); +const path = require('path'); + +const app = express(); +const port = process.env.PORT || 80; + +// Servir les fichiers statiques depuis le dossier 'build' +app.use(express.static(path.join(__dirname, 'build'))); + +// Définir le type MIME pour les fichiers JavaScript +app.use('*.js', (req, res, next) => { + res.type('application/javascript; charset=utf-8'); + next(); +}); + +// Route par défaut pour servir l'application React +app.get('*', (req, res) => { + res.sendFile(path.join(__dirname, 'build', 'index.html')); +}); + +// Démarrer le serveur +app.listen(port, () => { + console.log(`Serveur en cours d'exécution sur le port ${port}`); +});