summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorかひわし4(バージョン1) <khws4v1@gmail.com>2018-10-09 15:09:50 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2018-10-09 15:09:50 +0900
commit7a406c1f135bd1020528cf46870b70360342d244 (patch)
tree2c8b16207dc820d6388685e9bdd21a9047fa869b
parent10.3.0 (diff)
downloadmisskey-7a406c1f135bd1020528cf46870b70360342d244.tar.gz
misskey-7a406c1f135bd1020528cf46870b70360342d244.tar.bz2
misskey-7a406c1f135bd1020528cf46870b70360342d244.zip
Docker (#2867)
* Dockerize Misskey * Add a new line at EOF * Add support Elasticsearch * / * Add setup document for docker * Add english document * Edit docs * docker -> Docker * Arrange format * Update docker.en.md * Modify title
-rw-r--r--.config/mongo_initdb_example.js13
-rwxr-xr-x.dockerignore12
-rw-r--r--.gitignore4
-rw-r--r--Dockerfile28
-rw-r--r--docker-compose.yml52
-rw-r--r--docs/docker.en.md47
-rw-r--r--docs/docker.ja.md48
7 files changed, 204 insertions, 0 deletions
diff --git a/.config/mongo_initdb_example.js b/.config/mongo_initdb_example.js
new file mode 100644
index 0000000000..b7e7321f35
--- /dev/null
+++ b/.config/mongo_initdb_example.js
@@ -0,0 +1,13 @@
+var user = {
+ user: 'example-misskey-user',
+ pwd: 'example-misskey-pass',
+ roles: [
+ {
+ role: 'readWrite',
+ db: 'misskey'
+ }
+ ]
+};
+
+db.createUser(user);
+
diff --git a/.dockerignore b/.dockerignore
new file mode 100755
index 0000000000..a25d4e5718
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,12 @@
+.autogen
+.git
+.github
+.travis
+.vscode
+Dockerfile
+build/
+docker-compose.yml
+node_modules/
+mongo/
+redis/
+elasticsearch/
diff --git a/.gitignore b/.gitignore
index 2cea822c18..1e12e20de2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
/.config/*
!/.config/example.yml
+!/.config/mongo_initdb_example.js
/.vscode
/node_modules
/build
@@ -12,3 +13,6 @@ npm-debug.log
run.bat
api-docs.json
*.log
+/redis
+/mongo
+/elasticsearch
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000..64c0b8b589
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,28 @@
+FROM alpine:latest AS base
+
+ENV NODE_ENV=production
+
+RUN apk add --no-cache nodejs nodejs-npm
+RUN apk add vips fftw --update-cache --repository https://dl-3.alpinelinux.org/alpine/edge/testing/
+WORKDIR /misskey
+COPY . ./
+
+FROM base AS builder
+
+RUN apk add --no-cache gcc g++ python autoconf automake file make nasm
+RUN apk add vips-dev fftw-dev --update-cache --repository https://dl-3.alpinelinux.org/alpine/edge/testing/
+RUN npm install \
+ && npm install -g node-gyp \
+ && node-gyp configure \
+ && node-gyp build \
+ && npm run build
+
+FROM base AS runner
+
+COPY --from=builder /misskey/built ./built
+COPY --from=builder /misskey/node_modules ./node_modules
+
+RUN apk add --no-cache tini
+ENTRYPOINT ["/sbin/tini", "--"]
+
+CMD ["npm", "start"]
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000..1b2e6c9fc3
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,52 @@
+version: "3"
+
+services:
+ web:
+ build: .
+ restart: always
+ links:
+ - mongo
+ - redis
+# - es
+ ports:
+ - "127.0.0.1:3000:3000"
+ networks:
+ - internal_network
+ - external_network
+
+ redis:
+ restart: always
+ image: redis:4.0-alpine
+ networks:
+ - internal_network
+### Uncomment to enable Redis persistance
+# volumes:
+# - ./redis:/data
+
+ mongo:
+ restart: always
+ image: mongo:4.1-bionic
+ networks:
+ - internal_network
+ environment:
+ MONGO_INITDB_DATABASE: "misskey"
+ volumes:
+ - ./.config/mongo_initdb.js:/docker-entrypoint-initdb.d/mongo_initdb.js:ro
+### Uncomment to enable MongoDB persistance
+# - ./mongo:/data
+
+# es:
+# restart: always
+# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
+# environment:
+# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+# networks:
+# - internal_network
+#### Uncomment to enable ES persistence
+## volumes:
+## - ./elasticsearch:/usr/share/elasticsearch/data
+
+networks:
+ internal_network:
+ internal: true
+ external_network:
diff --git a/docs/docker.en.md b/docs/docker.en.md
new file mode 100644
index 0000000000..d0546c0a2a
--- /dev/null
+++ b/docs/docker.en.md
@@ -0,0 +1,47 @@
+Docker Guide
+================================================================
+
+This guide describes how to install and setup Misskey with Docker.
+
+[Japanese version also available - 日本語版もあります](./docker.ja.md)
+
+----------------------------------------------------------------
+
+*1.* Make configuration files
+----------------------------------------------------------------
+1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`.
+2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copy the `.config/mongo_initdb_example.js` and rename it to `mongo_initdb.js`.
+2. Edit `default.yml` and `mongo_initdb.js`.
+
+*2.* Configure Docker
+----------------------------------------------------------------
+Edit `docker-compose.yml`.
+
+*3.* Build Misskey
+----------------------------------------------------------------
+Build misskey with the following:
+
+`docker-compose build`
+
+*4.* That is it.
+----------------------------------------------------------------
+Well done! Now, you have an environment that run to Misskey.
+
+### Launch normally
+Just `docker-compose up -d`. GLHF!
+
+### Way to Update to latest version of your Misskey
+1. `git fetch`
+2. `git stash`
+3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
+4. `git stash pop`
+5. `docker-compose build`
+6. Check [ChangeLog](../CHANGELOG.md) for migration information
+7. `docker-compose stop && docker-compose up -d`
+
+### Way to execute cli command:
+`docker-compose run --rm web node cli/mark-admin @example`
+
+----------------------------------------------------------------
+
+If you have any questions or troubles, feel free to contact us!
diff --git a/docs/docker.ja.md b/docs/docker.ja.md
new file mode 100644
index 0000000000..e38f3e91a6
--- /dev/null
+++ b/docs/docker.ja.md
@@ -0,0 +1,48 @@
+Dockerを使ったMisskey構築方法
+================================================================
+
+このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
+
+[英語版もあります - English version also available](./docker.en.md)
+
+----------------------------------------------------------------
+
+*1.* 設定ファイルを作成する
+----------------------------------------------------------------
+1. `cp .config/example.yml .config/default.yml` `.config/example.yml`をコピーし名前を`default.yml`にする
+2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` `.config/mongo_initdb_example.js`をコピーし名前を`mongo_initdb.js`にする
+3. `default.yml`と`mongo_initdb.js`を編集する
+
+*2.* Dockerの設定
+----------------------------------------------------------------
+`docker-compose.yml`を編集してください。
+
+*3.* Misskeyのビルド
+----------------------------------------------------------------
+次のコマンドでMisskeyをビルドしてください:
+
+`docker-compose build`
+
+*4.* 以上です!
+----------------------------------------------------------------
+お疲れ様でした。これでMisskeyを動かす準備は整いました。
+
+### 通常起動
+`docker-compose up -d`するだけです。GLHF!
+
+### Misskeyを最新バージョンにアップデートする方法:
+1. `git fetch`
+2. `git stash`
+3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
+4. `git stash pop`
+5. `docker-compose build`
+6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
+7. `docker-compose stop && docker-compose up -d`
+
+### cliコマンドを実行する方法:
+
+`docker-compose run --rm web node cli/mark-admin @example`
+
+----------------------------------------------------------------
+
+なにかお困りのことがありましたらお気軽にご連絡ください。 \ No newline at end of file