diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..b38db2f --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,2 @@ +node_modules/ +build/ diff --git a/backend/public/.keep b/backend/public/.keep new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/app.js b/backend/src/app.js index 120da9e..3e707a6 100644 --- a/backend/src/app.js +++ b/backend/src/app.js @@ -1,14 +1,22 @@ const express = require("express"); const socketIO = require("socket.io"); const state = require("./state.js"); +const path = require("path"); +const HOST = '0.0.0.0'; const PORT = 3001; const app = express(); -const server = app.listen(PORT, () => console.log(`Example app listening on port ${PORT}!`)); +const server = app.listen(PORT, HOST,() => console.log(`Example app listening on port ${PORT}!`)); +app.use(express.static(path.join(__dirname, '../public'))); + const io = socketIO(server); -app.get('/', (req, res) => res.send('
' + JSON.stringify(state) + '
')); +app.get('/state', (req, res) => res.send('
' + JSON.stringify(state) + '
')); + +process.on('SIGINT', function() { + process.exit(); +}); module.exports = { app, server, io diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5dcb848 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.4" +services: + centurion: + build: + context: . + dockerfile: ./dockerfile + environment: + NODE_ENV: production + ports: + - 8800:3001 + restart: always + command: "node src/index.js" diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..a3f9d7d --- /dev/null +++ b/dockerfile @@ -0,0 +1,18 @@ +# Stage 1 - the build process +FROM node:13-alpine as build-deps +WORKDIR /usr/src/app + +COPY frontend/package.json frontend/package-lock.json frontend/config-overrides.js ./ +RUN yarn +COPY frontend/ ./ +RUN yarn build + +# Backend +FROM node:13-alpine +WORKDIR /app +COPY backend/package.json backend/package-lock.json ./ +RUN yarn +COPY backend/ ./ +COPY --from=build-deps /usr/src/app/build public + +EXPOSE 3001 diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..b38db2f --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,2 @@ +node_modules/ +build/ diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index d998b67..e222f84 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -13,7 +13,6 @@ const App = () => { const [started, setStarted] = useState(false); const player = useRef(new Audio("centurion.m4a")); - useEffect(() => { socket.on('started', async () => { setStarted(true); diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index c50e2fe..933c190 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -3,5 +3,4 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; - ReactDOM.render(, document.getElementById('root'));