Skip to content

Enable running this in Docker #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 1, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM node:10-slim

RUN apt-get update \
&& mkdir -p /usr/share/man/man1 \
&& mkdir -p /usr/share/man/man7 \
&& apt-get install -y --no-install-recommends postgresql-client libpq-dev \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean

WORKDIR /usr/src/app

COPY package* ./

RUN npm install -g

COPY . ./

CMD npm start
7 changes: 7 additions & 0 deletions bin/www
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@
var app = require('../app');
var debug = require('debug')('node-sequelize:server');
var http = require('http');
var models = require('../models');

/**
* Sync Database
*/

models.sequelize.sync()

/**
* Get port from environment and store in Express.
Expand Down
25 changes: 25 additions & 0 deletions config/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const creds = {
development: {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOSTNAME,
dialect: 'postgresql'
},
test: {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOSTNAME,
dialect: 'postgresql'
},
production: {
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOSTNAME,
dialect: 'postgresql'
}
};

module.exports = creds;
23 changes: 0 additions & 23 deletions config/config.json

This file was deleted.

27 changes: 27 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
version: '2.1'

services:
api:
build: .
environment:
DB_USERNAME: postgres
DB_PASSWORD: test
DB_NAME: test
DB_HOSTNAME: db
ports:
- 3000:3000
depends_on:
db:
condition: service_healthy
db:
image: postgres:10
restart: always
environment:
POSTGRES_PASSWORD: test
POSTGRES_DB: test
ALLOW_IP_RANGE: 0.0.0.0/0
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
2 changes: 1 addition & 1 deletion models/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ var path = require('path');
var Sequelize = require('sequelize');
var basename = path.basename(__filename);
var env = process.env.NODE_ENV || 'development';
var config = require(__dirname + '/../config/config.json')[env];
var config = require(__dirname + '/../config/config.js')[env];
var db = {};

if (config.use_env_variable) {
Expand Down