瀏覽代碼

feat: dev docker-compose

Nicolas Giard 6 年之前
父節點
當前提交
2483dce941
共有 6 個文件被更改,包括 95 次插入6 次删除
  1. 13 6
      dev/docker/Dockerfile
  2. 16 0
      dev/docker/config.yml
  3. 12 0
      dev/examples/Dockerfile
  4. 0 0
      dev/examples/docker-compose.yml
  5. 50 0
      docker-compose.yml
  6. 4 0
      server/core/config.js

+ 13 - 6
dev/docker/Dockerfile

@@ -1,12 +1,19 @@
-FROM requarks/wiki:latest
+# -- DEV DOCKERFILE --
+# -- DO NOT USE IN PRODUCTION! --
 
-# Replace with your email address:
-ENV WIKI_ADMIN_EMAIL admin@example.com
+FROM node:8-alpine
+LABEL maintainer "requarks.io"
+
+RUN apk update && \
+    apk add bash curl git python make g++ --no-cache && \
+    mkdir -p /var/wiki
 
 WORKDIR /var/wiki
+COPY package.json .
+RUN yarn --silent
 
-# Replace your-config.yml with the path to your config file:
-ADD your-config.yml config.yml
+ENV dockerdev 1
 
 EXPOSE 3000
-ENTRYPOINT [ "node", "server" ]
+
+CMD ["tail", "-f", "/dev/null"]

+ 16 - 0
dev/docker/config.yml

@@ -0,0 +1,16 @@
+port: 3000
+paths:
+  content: ./content
+  data: ./data
+db:
+  type: postgres
+  host: db
+  port: 5432
+  user: wikijs
+  pass: wikijsrocks
+  db: wiki
+redis:
+  host: redis
+  port: 6379
+  db: 0
+logLevel: info

+ 12 - 0
dev/examples/Dockerfile

@@ -0,0 +1,12 @@
+FROM requarks/wiki:latest
+
+# Replace with your email address:
+ENV WIKI_ADMIN_EMAIL admin@example.com
+
+WORKDIR /var/wiki
+
+# Replace your-config.yml with the path to your config file:
+ADD your-config.yml config.yml
+
+EXPOSE 3000
+ENTRYPOINT [ "node", "server" ]

+ 0 - 0
dev/docker/docker-compose.yml → dev/examples/docker-compose.yml


+ 50 - 0
docker-compose.yml

@@ -0,0 +1,50 @@
+# -- DEV DOCKER-COMPOSE --
+# -- DO NOT USE IN PRODUCTION! --
+
+version: "3"
+services:
+
+  redis:
+    image: redis:4-alpine
+    ports:
+      - "16379:6379"
+    logging:
+      driver: "none"
+    networks:
+      - wikinet
+
+  db:
+    image: postgres:9-alpine
+    environment:
+      POSTGRES_DB: wiki
+      POSTGRES_PASSWORD: wikijsrocks
+      POSTGRES_USER: wikijs
+    logging:
+      driver: "none"
+    volumes:
+      - db-data:/var/lib/postgresql/data
+    networks:
+      - wikinet
+    ports:
+      - "15432:5432"
+
+  wiki:
+    build:
+      context: .
+      dockerfile: dev/docker/Dockerfile
+    depends_on:
+      - db
+      - redis
+    networks:
+      - wikinet
+    ports:
+      - "3000:3000"
+    volumes:
+      - .:/var/wiki
+      - /var/wiki/node_modules
+
+networks:
+  wikinet:
+
+volumes:
+  db-data:

+ 4 - 0
server/core/config.js

@@ -18,6 +18,10 @@ module.exports = {
       dataRegex: path.join(WIKI.SERVERPATH, 'app/regex.js')
     }
 
+    if (process.env.dockerdev) {
+      confPaths.config = path.join(WIKI.ROOTPATH, 'dev/docker/config.yml')
+    }
+
     process.stdout.write(chalk.blue(`Loading configuration from ${confPaths.config}... `))
 
     let appconfig = {}