diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..48f621a40f6b2c4572c21c3d246f42f0d88a4add --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.git +node_modules +dist +npm-debug.log \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..9c7d7ffd484e2ab4187c9e12ad31819bd6551416 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,71 @@ +# Nodejs Base image +FROM node +# install and app dependencies +COPY . . +RUN npm install -g @nestjs/cli +RUN npm ci +RUN mkdir /dist +RUN mkdir /dist/config +RUN npm run build +RUN echo '{\n\ + "server": {\n\ + "uri": "localhost",\n\ + "port": 3002\n\ + },\n\ + "resources": {\n\ + "internshipAgreements": "internship-agreements"\n\ + },\n\ + "mongodb": {\n\ + "uri": "mongodb://db:27018/internship-manager"\n\ + },\n\ + "mailgun": {\n\ + "apiKey": "5d9beaef19aaa5bb01aa59bd48a12501-f7d687c0-d4d95492",\n\ + "domain": "sandboxab7a8915c6f942d599319a95f74da7a6.mailgun.org"\n\ + }\n\ +}' >> /dist/config/config.json + +RUN echo '{\n\ + "server": {\n\ + "uri": "localhost",\n\ + "port": 3002\n\ + },\n\ + "resources": {\n\ + "internshipAgreements": "internship-agreements"\n\ + },\n\ + "mongodb": {\n\ + "uri": "mongodb://db:27018/internship-manager"\n\ + },\n\ + "mailgun": {\n\ + "apiKey": "5d9beaef19aaa5bb01aa59bd48a12501-f7d687c0-d4d95492",\n\ + "domain": "sandboxab7a8915c6f942d599319a95f74da7a6.mailgun.org"\n\ + }\n\ +}' >> /dist/config/config.prod.json + +RUN mkdir /dist/main +RUN echo '"use strict";\n\ +Object.defineProperty(exports, "__esModule", { value: true });\n\ +const config_1 = require("./config");\n\ +const common_1 = require("@nestjs/common");\n\ +const core_1 = require("@nestjs/core");\n\ +const app_module_1 = require("./app.module");\n\ +async function bootstrap() {\n\ + const env = process.env.NODE_ENV;\n\ + const app = await core_1.NestFactory.create(app_module_1.AppModule);\n\ + if (env === 'dev') {\n\ + app.enableCors();\n\ + }\n\ + else if (env === 'prod') {\n\ + }\n\ + else {\n\ + }\n\ + await app.useGlobalPipes(new common_1.ValidationPipe({\n\ + whitelist: true,\n\ + forbidNonWhitelisted: true,\n\ + }));\n\ + await app.listen(config_1.default.server.port);\n\ +}\n\ +bootstrap();\n\ +//# sourceMappingURL=main.js.map' >> /dist/main/main.js +#COPY /app/dist/config/config.template.json /app/dist/config/config.json +# start app +CMD [ "npm", "run","start:dev" ] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..e2955f31b9969059363edc1ed83ad61edeab009d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3" +services: + back_app: + depends_on: + - db + restart: always + build: . + ports: + - "3002:3002" + environment: + - DB_URL=mongodb://db_mongo + + db: + image: mongo + container_name: db_mongo + command: mongod --port 27018 + volumes: + - mongodata:/data/db + ports: + - "27018:27018" + +volumes: + mongodata: \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index 7c91d0d324da4bba37d81a79634ce1ce3cd02393..0000000000000000000000000000000000000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - mongo: - image: mongo - container_name: mongo - ports: - - 27017:27017 - restart: always diff --git a/docker/readme_docker.txt b/docker/readme_docker.txt new file mode 100644 index 0000000000000000000000000000000000000000..d6093104302a1f886a9c842e041cd61d7dfac091 --- /dev/null +++ b/docker/readme_docker.txt @@ -0,0 +1,6 @@ +Lancer la commande suivante dans le dossier InternshipManager-Back (mongo + back) : +- docker compose up + +Lancer les commandes suivantes dans le dossier gestion-front (front) : +- docker build -t front . +- docker run -it --rm -p 4200:4200 --name front-container front \ No newline at end of file