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
This commit is contained in:
		
							parent
							
								
									9432af2ab5
								
							
						
					
					
						commit
						7a406c1f13
					
				
					 7 changed files with 204 additions and 0 deletions
				
			
		
							
								
								
									
										13
									
								
								.config/mongo_initdb_example.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.config/mongo_initdb_example.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| var user = { | ||||
| 	user: 'example-misskey-user', | ||||
| 	pwd: 'example-misskey-pass', | ||||
| 	roles: [ | ||||
| 	    { | ||||
| 		    role: 'readWrite', | ||||
| 		    db: 'misskey' | ||||
| 	    } | ||||
| 	] | ||||
| }; | ||||
| 
 | ||||
| db.createUser(user); | ||||
| 
 | ||||
							
								
								
									
										12
									
								
								.dockerignore
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								.dockerignore
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,12 @@ | |||
| .autogen | ||||
| .git | ||||
| .github | ||||
| .travis | ||||
| .vscode | ||||
| Dockerfile | ||||
| build/ | ||||
| docker-compose.yml | ||||
| node_modules/ | ||||
| mongo/ | ||||
| redis/ | ||||
| elasticsearch/ | ||||
							
								
								
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -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 | ||||
|  |  | |||
							
								
								
									
										28
									
								
								Dockerfile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Dockerfile
									
										
									
									
									
										Normal file
									
								
							|  | @ -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"] | ||||
							
								
								
									
										52
									
								
								docker-compose.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docker-compose.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -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: | ||||
							
								
								
									
										47
									
								
								docs/docker.en.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								docs/docker.en.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -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! | ||||
							
								
								
									
										48
									
								
								docs/docker.ja.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docs/docker.ja.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -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` | ||||
| 
 | ||||
| ---------------------------------------------------------------- | ||||
| 
 | ||||
| なにかお困りのことがありましたらお気軽にご連絡ください。 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue