Browse Source

add docker

liuyuqi-dellpc 1 year ago
parent
commit
02efdd82d6

+ 25 - 0
.dockerignore

@@ -0,0 +1,25 @@
+**/.classpath
+**/.dockerignore
+**/.env
+**/.git
+**/.gitignore
+**/.project
+**/.settings
+**/.toolstarget
+**/.vs
+**/.vscode
+**/*.*proj.user
+**/*.dbmdl
+**/*.jfm
+**/bin
+**/charts
+**/docker-compose*
+**/compose*
+**/Dockerfile*
+**/node_modules
+**/npm-debug.log
+**/obj
+**/secrets.dev.yaml
+**/values.dev.yaml
+LICENSE
+README.md

+ 11 - 0
README.md

@@ -1,2 +1,13 @@
 # airsend
 
+airsend 是一个受苹果的隔空投递启发的 Web 应用程序
+
+## Develop
+
+```
+docker build -f render/Dockerfile -t jianboy/airsend:render .
+
+docker build -f server/Dockerfile -t jianboy/airsend:server . --no-cache
+
+```
+

+ 10 - 0
deploy/coturn/turnserver.conf

@@ -0,0 +1,10 @@
+listening-ip=内网IP
+relay-ip=内网IP
+external-ip=公网IP
+relay-threads=10
+lt-cred-mech
+realm=airsend
+cert=/usr/local/etc/turn_server_cert.pem
+pkey=/usr/local/etc/turn_server_pkey.pem
+no-cli
+mongo-userdb="mongodb://127.0.0.1:27017/airsend"

+ 41 - 0
deploy/docker-compose.debug.yml

@@ -0,0 +1,41 @@
+version: '3.4'
+
+services:
+
+  airsend-rander:
+    image: jianboy/airsend-rander:latest
+    build:
+      context: .
+      dockerfile: ./Dockerfile
+    ports:
+      - 8081:80
+    volumes:
+      - ./src:/app/src
+      - ./public:/app/public
+
+  airsend-server:
+    image: jianboy/airsend-server:latest
+    build:
+      context: .
+      dockerfile: ./Dockerfile
+    ports:
+      - 8080:8080
+    volumes:
+      - ./src:/app/src
+      - ./public:/app/public
+    networks:
+      - airsend-network
+
+  mongodb:
+    image: mongo:latest
+    ports:
+      - 27017:27017
+    volumes:
+      - ./data:/data/db
+    networks:
+      - airsend-network
+
+networks:
+  default:
+    external:
+      name: airsend-network

+ 37 - 0
deploy/docker-compose.yml

@@ -0,0 +1,37 @@
+version: '3.4'
+
+services:
+
+  airsend-rander:
+    image: jianboy/airsend-rander:latest
+    build:
+      context: .
+      dockerfile: ./Dockerfile
+    ports:
+      - 80:80
+    volumes:
+      - ./src:/app/src
+      - ./public:/app/public
+
+  airsend-server:
+    image: jianboy/airsend-server:latest
+    build:
+      context: .
+      dockerfile: ./Dockerfile
+    ports:
+      - 8080:8080
+    volumes:
+      - ./src:/app/src
+      - ./public:/app/public
+
+  mongodb:
+    image: mongo:latest
+    ports:
+      - 27017:27017
+    volumes:
+      - ./data:/data/db
+
+networks:
+  default:
+    external:
+      name: airsend-network

+ 0 - 0
deploy/mongodb/mongod.conf


+ 0 - 0
deploy/nginx/default.conf


+ 10 - 0
render/Dockerfile

@@ -0,0 +1,10 @@
+FROM node:14 as builder
+WORKDIR /app
+COPY . .
+RUN npm install
+RUN npm run build
+
+FROM nginx:1.19.0-alpine
+COPY --from=builder /app/build /usr/share/nginx/html
+EXPOSE 80
+CMD ["nginx", "-g", "daemon off;"]

+ 10 - 0
server/Dockerfile

@@ -0,0 +1,10 @@
+#build stage
+FROM node:14
+WORKDIR /app
+
+# install coturn
+RUN apt-get update && apt-get install -y coturn
+RUN openssl req -x509 -newkey rsa:2048 -keyout /usr/local/etc/turn_server_pkey.pem -out /usr/local/etc/turn_server_cert.pem -days 99999 -nodes
+
+
+CMD [ "turnserver", "-o", "-a", "-f", "-v", "-r", "airsend" ]