Some Dockerfile improvements (#3182)
- improve docker_entrypoint.sh - serve static files with puma by default - sort packages list - use virtual package for build deps - show how to assign UID/GID
This commit is contained in:
		
							parent
							
								
									ef900789bc
								
							
						
					
					
						commit
						ae78d012ac
					
				
					 3 changed files with 30 additions and 14 deletions
				
			
		|  | @ -95,3 +95,8 @@ SMTP_FROM_ADDRESS=notifications@example.com | ||||||
| # Cluster number setting for streaming API server. | # Cluster number setting for streaming API server. | ||||||
| # If you comment out following line, cluster number will be `numOfCpuCores - 1`. | # If you comment out following line, cluster number will be `numOfCpuCores - 1`. | ||||||
| STREAMING_CLUSTER_NUM=1 | STREAMING_CLUSTER_NUM=1 | ||||||
|  | 
 | ||||||
|  | # Docker mastodon user | ||||||
|  | # If you use Docker, you may want to assign UID/GID manually. | ||||||
|  | # UID=1000 | ||||||
|  | # GID=1000 | ||||||
|  |  | ||||||
							
								
								
									
										27
									
								
								Dockerfile
									
										
									
									
									
								
							
							
						
						
									
										27
									
								
								Dockerfile
									
										
									
									
									
								
							|  | @ -4,6 +4,7 @@ LABEL maintainer="https://github.com/tootsuite/mastodon" \ | ||||||
|       description="A GNU Social-compatible microblogging server" |       description="A GNU Social-compatible microblogging server" | ||||||
| 
 | 
 | ||||||
| ENV UID=991 GID=991 \ | ENV UID=991 GID=991 \ | ||||||
|  |     RAILS_SERVE_STATIC_FILES=true \ | ||||||
|     RAILS_ENV=production NODE_ENV=production |     RAILS_ENV=production NODE_ENV=production | ||||||
| 
 | 
 | ||||||
| EXPOSE 3000 4000 | EXPOSE 3000 4000 | ||||||
|  | @ -11,28 +12,28 @@ EXPOSE 3000 4000 | ||||||
| WORKDIR /mastodon | WORKDIR /mastodon | ||||||
| 
 | 
 | ||||||
| RUN echo "@edge https://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \ | RUN echo "@edge https://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \ | ||||||
|  && BUILD_DEPS=" \ |  && apk -U upgrade \ | ||||||
|     postgresql-dev \ |  && apk add -t build-dependencies \ | ||||||
|  |     build-base \ | ||||||
|     libxml2-dev \ |     libxml2-dev \ | ||||||
|     libxslt-dev \ |     libxslt-dev \ | ||||||
|  |     postgresql-dev \ | ||||||
|  |     protobuf-dev \ | ||||||
|     python \ |     python \ | ||||||
|     build-base \ |  && apk add \ | ||||||
|     protobuf-dev" \ |     ca-certificates \ | ||||||
|  && apk -U upgrade && apk add \ |     ffmpeg \ | ||||||
|     $BUILD_DEPS \ |     file \ | ||||||
|     nodejs@edge \ |  | ||||||
|     nodejs-npm@edge \ |  | ||||||
|     git \ |     git \ | ||||||
|  |     imagemagick@edge \ | ||||||
|     libpq \ |     libpq \ | ||||||
|     libxml2 \ |     libxml2 \ | ||||||
|     libxslt \ |     libxslt \ | ||||||
|     ffmpeg \ |     nodejs-npm@edge \ | ||||||
|     file \ |     nodejs@edge \ | ||||||
|     imagemagick@edge \ |  | ||||||
|     ca-certificates \ |  | ||||||
|     protobuf \ |     protobuf \ | ||||||
|     tini \ |  | ||||||
|     su-exec \ |     su-exec \ | ||||||
|  |     tini \ | ||||||
|  && npm install -g npm@3 && npm install -g yarn \ |  && npm install -g npm@3 && npm install -g yarn \ | ||||||
|  && update-ca-certificates \ |  && update-ca-certificates \ | ||||||
|  && rm -rf /tmp/* /var/cache/apk/* |  && rm -rf /tmp/* /var/cache/apk/* | ||||||
|  |  | ||||||
|  | @ -1,4 +1,14 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
|  | 
 | ||||||
|  | ### 1. Adds local user (UID and GID are provided from environment variables). | ||||||
|  | ### 2. Updates permissions, except for ./public/system (should be chown on previous installations). | ||||||
|  | ### 3. Executes the command as that user. | ||||||
|  | 
 | ||||||
|  | echo "Creating mastodon user (UID : ${UID} and GID : ${GID})..." | ||||||
| addgroup -g ${GID} mastodon && adduser -h /mastodon -s /bin/sh -D -G mastodon -u ${UID} mastodon | addgroup -g ${GID} mastodon && adduser -h /mastodon -s /bin/sh -D -G mastodon -u ${UID} mastodon | ||||||
|  | 
 | ||||||
|  | echo "Updating permissions..." | ||||||
| find /mastodon -path /mastodon/public/system -prune -o -not -user mastodon -not -group mastodon -print0 | xargs -0 chown -f mastodon:mastodon | find /mastodon -path /mastodon/public/system -prune -o -not -user mastodon -not -group mastodon -print0 | xargs -0 chown -f mastodon:mastodon | ||||||
| su-exec mastodon:mastodon /sbin/tini -- "$@" | 
 | ||||||
|  | echo "Executing process..." | ||||||
|  | exec su-exec mastodon:mastodon /sbin/tini -- "$@" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue