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