feat: docker setup & deployment

This commit is contained in:
wancat committed 2023-10-14 19:43:13 +08:00
1 parent ad08bde4c4
commit 20927fe8aa
10 files changed
+87 -8

No files matched your search

+8
View File
@@ -80,6 +80,14 @@ jobs:
push: true
tags: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/linux-odyssey:app
- name: Build analytics
uses: docker/build-push-action@v2
with:
context: .
file: ./packages/analytics/Dockerfile
push: true
tags: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/linux-odyssey:analytics
- name: Build base image
uses: docker/build-push-action@v2
with:
+15
View File
@@ -25,6 +25,21 @@ services:
environment:
- MONGO_URL=mongodb://user:user-password@db:27017/odyssey-test
- DOCKER_NETWORK=linux-odyssey-players
analytics:
image: lancatlin/linux-odyssey:analytics
build:
context: .
dockerfile: packages/analytics/Dockerfile
depends_on:
- db
networks:
- internal
ports:
- '3001:3001'
environment:
- MONGO_URL=mongodb://user:user-password@db:27017/odyssey-test
db:
image: mongo
restart: always
+17
View File
@@ -39,6 +39,23 @@ services:
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- GITHUB_CLIENT_ID=${GITHUB_CLIENT_ID}
- GITHUB_CLIENT_SECRET=${GITHUB_CLIENT_SECRET}
analytics:
build:
context: .
dockerfile: packages/analytics/Dockerfile.dev
depends_on:
- db
networks:
- internal
ports:
- '3001:3001'
environment:
- MONGO_URL=mongodb://db:27017/odyssey-test
volumes:
- ./packages/analytics:/app/packages/analytics
- ./packages/models:/app/packages/models
db:
image: mongo
networks:
+19
View File
@@ -0,0 +1,19 @@
FROM node
WORKDIR /app
COPY ./package.json yarn.lock ./
COPY packages/analytics/package.json ./packages/analytics/package.json
COPY packages/models/package.json ./packages/models/package.json
RUN yarn install --frozen-lockfile --production
COPY packages/analytics ./packages/analytics
COPY packages/models ./packages/models
WORKDIR /app/packages/analytics
ENV NODE_ENV=production
ENV HOST=0.0.0.0
ENV PORT=3001
EXPOSE 3001
CMD [ "yarn", "start" ]
+16
View File
@@ -0,0 +1,16 @@
FROM node
WORKDIR /app
COPY ./package.json yarn.lock ./
COPY packages/analytics/package.json ./packages/analytics/package.json
COPY packages/models/package.json ./packages/models/package.json
RUN yarn install --frozen-lockfile
WORKDIR /app/packages/analytics
ENV NODE_ENV=development
ENV HOST=0.0.0.0
ENV PORT=3001
EXPOSE 3001
CMD [ "yarn", "dev" ]
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "analytics",
"version": "1.0.0",
"main": "index.js",
"main": "src/index.js",
"private": true,
"type": "module",
"license": "GPL",
+7 -1
View File
@@ -1,3 +1,9 @@
export default {
const config = {
host: process.env.HOST || 'localhost',
port: process.env.PORT || 3001,
db: process.env.MONGO_URL || 'mongodb://localhost:27017/odyssey-test',
}
config.baseUrl = process.env.BASE_URL || `http://${config.host}:${config.port}`
export default config
+2 -2
View File
@@ -16,8 +16,8 @@ async function main() {
app.use(router)
app.use(express.static('./public'))
app.listen(3001, () => {
console.log('Server started on http://localhost:3001')
app.listen(config.port, config.host, () => {
console.log(`Server started on ${config.baseUrl}`)
})
}
-1
View File
@@ -6,7 +6,6 @@
"license": "GPL",
"exports": "./index.js",
"dependencies": {
"@linux-odyssey/file-graph": "*",
"mongoose": "^7.6.0"
}
}
+2 -3
View File
@@ -1,5 +1,4 @@
import { model, Schema } from 'mongoose'
import { FileNode } from '@linux-odyssey/file-graph'
const nodeSchema = new Schema({
path: String,
@@ -58,10 +57,10 @@ const Session = model(
hints: [String],
graph: {
type: nodeSchema,
default: new FileNode({
default: {
path: '/',
type: 'folder',
}),
},
},
},
{ timestamps: true }