trying to connect db to backend

This commit is contained in:
kinou-p 2023-03-24 18:45:36 +01:00
parent 9c9d855722
commit d96861cddf
8 changed files with 185 additions and 16 deletions

View File

@ -6,13 +6,13 @@
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/03/19 09:29:27 by apommier #+# #+# #
# Updated: 2023/03/19 11:22:00 by apommier ### ########.fr #
# Updated: 2023/03/22 17:51:22 by apommier ### ########.fr #
# #
# **************************************************************************** #
all:
# -mkdir -p /home/apommier/data/wordpress
# -mkdir -p /home/apommier/data/mariadb
-mkdir -p /home/apommier/data/postgresql
docker-compose -f docker-compose.yml up --build
fclean: down

View File

@ -37,6 +37,11 @@
"unpipe": "1.0.0"
}
},
"buffer-writer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
"integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="
},
"bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@ -92,6 +97,11 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"dotenv": {
"version": "16.0.3",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
"integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@ -320,6 +330,11 @@
"ee-first": "1.1.1"
}
},
"packet-reader": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
"integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="
},
"parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@ -330,6 +345,83 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"pg": {
"version": "8.10.0",
"resolved": "https://registry.npmjs.org/pg/-/pg-8.10.0.tgz",
"integrity": "sha512-ke7o7qSTMb47iwzOSaZMfeR7xToFdkE71ifIipOAAaLIM0DYzfOAXlgFFmYUIE2BcJtvnVlGCID84ZzCegE8CQ==",
"requires": {
"buffer-writer": "2.0.0",
"packet-reader": "1.0.0",
"pg-connection-string": "^2.5.0",
"pg-pool": "^3.6.0",
"pg-protocol": "^1.6.0",
"pg-types": "^2.1.0",
"pgpass": "1.x"
}
},
"pg-connection-string": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
"integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ=="
},
"pg-int8": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="
},
"pg-pool": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.0.tgz",
"integrity": "sha512-clFRf2ksqd+F497kWFyM21tMjeikn60oGDmqMT8UBrynEwVEX/5R5xd2sdvdo1cZCFlguORNpVuqxIj+aK4cfQ=="
},
"pg-protocol": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz",
"integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q=="
},
"pg-types": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
"requires": {
"pg-int8": "1.0.1",
"postgres-array": "~2.0.0",
"postgres-bytea": "~1.0.0",
"postgres-date": "~1.0.4",
"postgres-interval": "^1.1.0"
}
},
"pgpass": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz",
"integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
"requires": {
"split2": "^4.1.0"
}
},
"postgres-array": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="
},
"postgres-bytea": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
"integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w=="
},
"postgres-date": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="
},
"postgres-interval": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
"requires": {
"xtend": "^4.0.0"
}
},
"proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@ -426,6 +518,11 @@
"object-inspect": "^1.9.0"
}
},
"split2": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz",
"integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ=="
},
"statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
@ -459,6 +556,11 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
}
}
}

View File

@ -9,7 +9,9 @@
},
"dependencies": {
"body-parser": "^1.20.2",
"express": "^4.18.2"
"dotenv": "^16.0.3",
"express": "^4.18.2",
"pg": "^8.10.0"
},
"devDependencies": {},
"license": "ISC"

View File

@ -1,7 +1,48 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* server.js :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/03/22 18:05:15 by apommier #+# #+# */
/* Updated: 2023/03/22 19:20:40 by apommier ### ########.fr */
/* */
/* ************************************************************************** */
const express = require('express');
const bodyParser = require('body-parser');
// const { Client } = require('pg');
const { Pool } = require('pg');
const pool = new Pool({
host: '127.0.0.1',
port: 5432,
user: 'kinou',
password: 'pass',
database: 'postgreDB'
})
module.exports = pool;
pool.query('SELECT * FROM users', (err, res) => {
if (err) {
console.error(err);
} else {
console.log(res.rows);
}
});
const app = express();
// app.use(express.json());
// const client = new Client({
// host: process.env.POSTGRES_HOST,
// port: process.env.POSTGRES_PORT,
// user: process.env.POSTGRES_USER,
// password: process.env.POSTGRES_PASSWORD,
// database: process.env.POSTGRES_DB
// });
// client.connect();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

19
database/init.sql Normal file
View File

@ -0,0 +1,19 @@
DROP DATABASE IF EXISTS test;
CREATE DATABASE postgreDB;
CREATE USER IF NOT EXISTS '$POSTGRES_USER'@'%' IDENTIFIED BY 'POSTGRES_PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO '$POSTGRES_USER'@'%';
SET PASSWORD FOR 'root'@'$POSTGRES_HOST' = PASSWORD('POSTGRES_ROOT_PASSWORD');
FLUSH PRIVILEGES;
CREATE TABLE user (
nickname varchar(20),
user_password varchar(20),
user_login varchar(20)
);
CREATE TABLE score (
win int,
loose int
);

View File

@ -7,10 +7,9 @@ services:
context : ./
dockerfile: ./dockerfiles/Dockerfile.nginx
container_name: nginx
#image: nginx:homemade
env_file: .env
depends_on:
- backend
# - backend
ports:
- 80:80
# - 443:443
@ -20,7 +19,6 @@ services:
networks:
- pongNetwork
# backend:
backend:
build:
context : ./
@ -28,7 +26,6 @@ services:
container_name: backend
ports:
- 5000:5000
#image: wordpress:homemade
env_file: .env
volumes:
- ./frontend:/var/www/html
@ -36,9 +33,9 @@ services:
# - ./backend:/home/node/app
depends_on:
- postgresql
restart: unless-stopped
networks:
- pongNetwork
# restart: unless-stopped
postgresql:
build: #./dockerfiles/Dockerfile.PostgreSQL
@ -47,7 +44,8 @@ services:
container_name: postgresql
#image: mariadb:homemade
ports:
- 3306:3306
- 5432:5432
# - ${POSTGRES_PORT}:${POSTGRES_PORT}
env_file: .env
#volumes:
# - dbdata:/var/lib/mysql

View File

@ -6,8 +6,12 @@
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/03/19 09:28:30 by apommier #+# #+# #
# Updated: 2023/03/19 11:24:21 by apommier ### ########.fr #
# Updated: 2023/03/22 18:45:25 by apommier ### ########.fr #
# #
# **************************************************************************** #
FROM postgres:latest
COPY database/init.sql /docker-entrypoint-initdb.d/
# RUN sed -i 's/bind-address/bind-address = 0.0.0.0 #/i' /etc/mysql/mariadb.conf.d/50-server.cnf
EXPOSE 5432
CMD ["postgres"]

View File

@ -6,7 +6,7 @@
# By: apommier <apommier@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/03/19 09:28:33 by apommier #+# #+# #
# Updated: 2023/03/22 12:14:35 by apommier ### ########.fr #
# Updated: 2023/03/22 19:40:22 by apommier ### ########.fr #
# #
# **************************************************************************** #
@ -30,5 +30,8 @@ RUN npm install
#npm install body-parser
COPY /backend/ .
EXPOSE 5000
# RUN curl -o /usr/wait-for-it.sh https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh
# CMD ["/usr/wait-for-it.sh", "postgresql:5432", "--", "node", "server.js"]
# CMD ["npm", "start"]
CMD dockerize -wait tcp://postgresql:5432 -timeout 60s
CMD ["node", "server.js"]