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:
		@@ -95,3 +95,8 @@ SMTP_FROM_ADDRESS=notifications@example.com
 | 
			
		||||
# Cluster number setting for streaming API server.
 | 
			
		||||
# If you comment out following line, cluster number will be `numOfCpuCores - 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"
 | 
			
		||||
 | 
			
		||||
ENV UID=991 GID=991 \
 | 
			
		||||
    RAILS_SERVE_STATIC_FILES=true \
 | 
			
		||||
    RAILS_ENV=production NODE_ENV=production
 | 
			
		||||
 | 
			
		||||
EXPOSE 3000 4000
 | 
			
		||||
@@ -11,28 +12,28 @@ EXPOSE 3000 4000
 | 
			
		||||
WORKDIR /mastodon
 | 
			
		||||
 | 
			
		||||
RUN echo "@edge https://nl.alpinelinux.org/alpine/edge/main" >> /etc/apk/repositories \
 | 
			
		||||
 && BUILD_DEPS=" \
 | 
			
		||||
    postgresql-dev \
 | 
			
		||||
 && apk -U upgrade \
 | 
			
		||||
 && apk add -t build-dependencies \
 | 
			
		||||
    build-base \
 | 
			
		||||
    libxml2-dev \
 | 
			
		||||
    libxslt-dev \
 | 
			
		||||
    postgresql-dev \
 | 
			
		||||
    protobuf-dev \
 | 
			
		||||
    python \
 | 
			
		||||
    build-base \
 | 
			
		||||
    protobuf-dev" \
 | 
			
		||||
 && apk -U upgrade && apk add \
 | 
			
		||||
    $BUILD_DEPS \
 | 
			
		||||
    nodejs@edge \
 | 
			
		||||
    nodejs-npm@edge \
 | 
			
		||||
 && apk add \
 | 
			
		||||
    ca-certificates \
 | 
			
		||||
    ffmpeg \
 | 
			
		||||
    file \
 | 
			
		||||
    git \
 | 
			
		||||
    imagemagick@edge \
 | 
			
		||||
    libpq \
 | 
			
		||||
    libxml2 \
 | 
			
		||||
    libxslt \
 | 
			
		||||
    ffmpeg \
 | 
			
		||||
    file \
 | 
			
		||||
    imagemagick@edge \
 | 
			
		||||
    ca-certificates \
 | 
			
		||||
    nodejs-npm@edge \
 | 
			
		||||
    nodejs@edge \
 | 
			
		||||
    protobuf \
 | 
			
		||||
    tini \
 | 
			
		||||
    su-exec \
 | 
			
		||||
    tini \
 | 
			
		||||
 && npm install -g npm@3 && npm install -g yarn \
 | 
			
		||||
 && update-ca-certificates \
 | 
			
		||||
 && rm -rf /tmp/* /var/cache/apk/*
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,14 @@
 | 
			
		||||
#!/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
 | 
			
		||||
 | 
			
		||||
echo "Updating permissions..."
 | 
			
		||||
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 -- "$@"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user