diff --git a/.envdev b/.envdev index a509bf3..4cab1e7 100644 --- a/.envdev +++ b/.envdev @@ -1,6 +1,6 @@ WEB_PORT=3100 -DB_HOSTNAME=127.0.0.1 +DB_HOSTNAME=database DB_DATABASE=news DB_USERNAME=news DB_PASSWORD=charizard diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2004e9d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM node:15 + +# Change working directory +WORKDIR "/app" + +# Copy package.json and package-lock.json +COPY package*.json ./ + +# Install npm production packages +RUN npm install --production + +COPY . /app + +EXPOSE 3100 + +USER node + +ENTRYPOINT ["npm", "start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e5feddf --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,37 @@ +version: '3' + +services: + + app: + build: + context: . + environment: + DB_HOSTNAME: database + DB_DATABASE: news + DB_USERNAME: news + DB_PASSWORD: charizard + DB_TIMEZONE: Australia/Sydney + networks: + - app-network + ports: + - "3100:3100" + + database: + image: mariadb:latest + environment: + MYSQL_DATABASE: news + MYSQL_USER: news + MYSQL_PASSWORD: charizard + MYSQL_ROOT_PASSWORD: root + networks: + - app-network + volumes: + - db-data:/var/lib/mysql + +networks: + app-network: + driver: bridge + +volumes: + db-data: + driver: local \ No newline at end of file diff --git a/package.json b/package.json index f5fe27e..7976ad7 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "An API centric news server. Uses Sequelize and mariaDB by default.", "main": "server/server.js", "scripts": { - "start": "pm2 start server/server.js --watch", + "start": "node server/server.js", "dev": "npm run watch:server", "watch:server": "nodemon . --ext js,jsx,json --ignore 'node_modules/*'" }, diff --git a/server/database/index.js b/server/database/index.js index bde6631..7d01b93 100644 --- a/server/database/index.js +++ b/server/database/index.js @@ -1,7 +1,7 @@ const Sequelize = require('sequelize'); const sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD, { - host: process.env.DB_HOSTADDR, + host: process.env.DB_HOSTNAME, dialect: 'mariadb', timezone: process.env.DB_TIMEZONE, logging: false