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/* | ||||||
| !/.config/example.yml | !/.config/example.yml | ||||||
|  | !/.config/mongo_initdb_example.js | ||||||
| /.vscode | /.vscode | ||||||
| /node_modules | /node_modules | ||||||
| /build | /build | ||||||
|  | @ -12,3 +13,6 @@ npm-debug.log | ||||||
| run.bat | run.bat | ||||||
| api-docs.json | api-docs.json | ||||||
| *.log | *.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