import { MongoClient } from "mongodb";
import { QueryModel } from "../../models/databases/mongodb/query.model";
const url = `mongodb://${process.env.MONGO_IP}`;
const dbName = 'you_need';
export async function query(collection_name: string): Promise<QueryModel> {
const client = new MongoClient(url);
await client.connect();
console.log('Connected successfully to server');
const db = client.db(dbName);
const collection = db.collection(collection_name);
return {
collection,
client
};
}
const esbuild = require('esbuild');
const { nodeExternalsPlugin } = require('esbuild-node-externals');
esbuild.build({
entryPoints: ['./src/main.ts'],
bundle: true,
platform: 'node',
tsconfig: "tsconfig.json",
define: {
"process.env.JWT_SECRET": "\"supercat\"",
"process.env.PORT": "\"4000\"",
"process.env.HOST": "\"http://localhost:4200\"",
"process.env.MONGO_IP": `\"my-mongodb:27017\"`
},
minify: true,
outfile: '../../dist/backend/server.js',
plugins: [nodeExternalsPlugin()],
});
version: '3.6'
# Deploys MongoDB with customization scripts and container with Mongo client
# https://fabianlee.org/2018/05/20/docker-using-docker-compose-to-link-a-mongodb-server-and-client/
#
# usage:
# sudo docker-compose build
# sudo docker-compose up
services:
my-mongodb:
image: mongo
container_name: my-mongodb
ports:
- 27017:27017
environment:
- MONGO_INITDB_DATABASE=you_need
- MONGO_INITDB_ROOT_USERNAME=
- MONGO_INITDB_ROOT_PASSWORD=
volumes:
# seeding scripts
- ./mongo-entrypoint:/docker-entrypoint-initdb.d
# named volumes
- mongodb:/data/db
- mongoconfig:/data/configdb
networks:
- test
my-mongoclient:
# build will get tagged with 'image'
build: .
image: d4c42b7d1910
ports:
- 4200:4200
container_name: my-mongoclient
environment:
- MONGO_SERVER=my-mongodb
- MONGO_INITDB_DATABASE=you_need
- MONGO_INITDB_ROOT_USERNAME=
- MONGO_INITDB_ROOT_PASSWORD=
networks:
- test
depends_on:
- my-mongodb
volumes:
# default dir on Ubuntu: /var/lib/docker/volumes
mongodb:
mongoconfig:
networks:
test:
driver: bridge
version: '3.6'
# Deploys MongoDB with customization scripts and container with Mongo client
# https://fabianlee.org/2018/05/20/docker-using-docker-compose-to-link-a-mongodb-server-and-client/
#
# usage:
# sudo docker-compose build
# sudo docker-compose up
services:
my-mongodb:
image: mongo
container_name: my-mongodb
ports:
- 27017:27017
environment:
- MONGO_INITDB_DATABASE=db
- MONGO_INITDB_ROOT_USERNAME=
- MONGO_INITDB_ROOT_PASSWORD=
volumes:
# seeding scripts
- ./mongo-entrypoint:/docker-entrypoint-initdb.d
# named volumes
- mongodb:/data/db
- mongoconfig:/data/configdb
networks:
- test
my-mongoclient:
# build will get tagged with 'image'
build: .
image: d4c42b7d1910
ports:
- 4200:4200
container_name: my-mongoclient
environment:
- MONGO_SERVER=my-mongodb
- MONGO_INITDB_DATABASE=db
- MONGO_INITDB_ROOT_USERNAME=
- MONGO_INITDB_ROOT_PASSWORD=
networks:
- test
depends_on:
- my-mongodb
volumes:
# default dir on Ubuntu: /var/lib/docker/volumes
mongodb:
mongoconfig:
networks:
mongo_net:
driver: bridge
service "my-mongodb" refers to undefined network test: invalid compose project
`mongodb://${process.env.MONGO_IP}`
MONGO_IP=localhost:27017
В гугле пишут что нужно использовать имя контейнера, я начал реализацию через аргументы командной строки но застрял, т.к. их нужно получать в докер файле
JWT_SECRET=supercat
PORT=4000
HOST=localhost:4200
MONGO_IP=localhost:27017