mirror of
https://github.com/bubblecup-12/VogelSocialMedia.git
synced 2025-07-07 04:08:46 +00:00
docker container and installationscript
This commit is contained in:
parent
b0f631cf45
commit
ec67454987
6 changed files with 77 additions and 2 deletions
|
@ -32,7 +32,11 @@
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.8.3"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "nodemon src/server.ts",
|
"start-containers": "docker-compose -f ../db/docker-compose.yaml up -d",
|
||||||
|
"stop-containers": "docker-compose down",
|
||||||
|
"start": "yarn start-containers && nodemon src/server.ts",
|
||||||
|
"start-no-docker": "nodemon src/server.ts",
|
||||||
|
"install-script": "ts-node scripts/install.ts",
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"dev": "ts-node-dev --respawn src/server.ts"
|
"dev": "ts-node-dev --respawn src/server.ts"
|
||||||
}
|
}
|
||||||
|
|
14
code/backend/scripts/install.json
Normal file
14
code/backend/scripts/install.json
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"commands": [
|
||||||
|
"echo Starting installation...",
|
||||||
|
"echo installing node_modules",
|
||||||
|
"yarn install",
|
||||||
|
"echo starting docker container",
|
||||||
|
"yarn start-containers",
|
||||||
|
"echo generating prisma",
|
||||||
|
"yarn prisma generate",
|
||||||
|
"echo migrating database",
|
||||||
|
"yarn prisma migrate dev --name init"
|
||||||
|
],
|
||||||
|
"installed": true
|
||||||
|
}
|
37
code/backend/scripts/install.ts
Normal file
37
code/backend/scripts/install.ts
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
import { exec } from "child_process";
|
||||||
|
import util from "util";
|
||||||
|
const execPromise = util.promisify(exec);
|
||||||
|
import fs from "fs";
|
||||||
|
|
||||||
|
const json_path: string = "scripts/install.json"; // Path to the JSON file
|
||||||
|
const raw = fs.readFileSync(json_path, "utf8");
|
||||||
|
const config = JSON.parse(raw); // Parse the JSON file
|
||||||
|
|
||||||
|
if (config.installed) {
|
||||||
|
// Check if the script has already been run
|
||||||
|
console.log("Already installed");
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
(async () => {
|
||||||
|
for (const command of config.commands) {
|
||||||
|
try {
|
||||||
|
const { stdout, stderr } = await execPromise(command); // Wait for the command to finish
|
||||||
|
if (stderr) {
|
||||||
|
console.log(`stderr: ${stderr}`);
|
||||||
|
}
|
||||||
|
console.log(stdout); // Print the output of the command`);
|
||||||
|
} catch (error: any) {
|
||||||
|
console.log(`error: ${error.message}`);
|
||||||
|
break; // Stop execution if an error occurs
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config.installed = true; // Set the installed flag to true
|
||||||
|
fs.writeFile(json_path, JSON.stringify(config), (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error("Error writing to file:", err);
|
||||||
|
} else {
|
||||||
|
console.log("File has been updated successfully.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
console.log("Installation complete");
|
||||||
|
})();
|
|
@ -6,7 +6,8 @@
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"outDir": "./dist"
|
"outDir": "./dist",
|
||||||
|
"resolveJsonModule": true // Allow importing JSON files
|
||||||
},
|
},
|
||||||
"include": ["src/**/*.ts"],
|
"include": ["src/**/*.ts"],
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
|
|
4
code/db/.env.example
Normal file
4
code/db/.env.example
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# This is an example of a .env file for the docker-compose setup.
|
||||||
|
# You can copy this file to .env and fill in the values.)
|
||||||
|
DB_USER=postgres
|
||||||
|
DB_PASSWORD=securePassword1234
|
15
code/db/docker-compose.yaml
Normal file
15
code/db/docker-compose.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:15
|
||||||
|
container_name: postgres-DB
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${DB_USER}
|
||||||
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||||
|
POSTGRES_DB: prisma
|
||||||
|
volumes:
|
||||||
|
- pgdata:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pgdata:
|
Loading…
Add table
Add a link
Reference in a new issue