First release of my Akkoma Docker image
This commit is contained in:
		
							
								
								
									
										37
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | FROM alpine:3.17 | ||||||
|  |  | ||||||
|  | ENV MIX_ENV prod | ||||||
|  | ENV PATH "${PATH}:/opt/akkoma/bin" | ||||||
|  | ENV AKKOMA_CONFIG_PATH "/config/config.exs" | ||||||
|  |  | ||||||
|  | # Install required (and optional) packages | ||||||
|  | RUN awk 'NR==2' /etc/apk/repositories | sed 's/main/community/' | tee -a /etc/apk/repositories && \ | ||||||
|  |     apk update && \ | ||||||
|  |     apk add su-exec curl unzip ncurses file-dev imagemagick ffmpeg exiftool libcrypto1.1 | ||||||
|  |  | ||||||
|  | # Set entrypoint | ||||||
|  | COPY ./entrypoint.sh /entrypoint.sh | ||||||
|  | RUN chown root:root /entrypoint.sh && \ | ||||||
|  |     chmod u+x /entrypoint.sh | ||||||
|  |  | ||||||
|  | # Create a dedicated user for Akkoma | ||||||
|  | RUN adduser --system --shell /bin/false --home /opt/akkoma akkoma | ||||||
|  |  | ||||||
|  | # Clone the release build into a temporary directory and unpack it | ||||||
|  | # then move the release to the home directory and delete temporary files | ||||||
|  | RUN curl 'https://akkoma-updates.s3-website.fr-par.scw.cloud/stable/akkoma-amd64-musl.zip' -o /tmp/akkoma.zip && \ | ||||||
|  |     unzip /tmp/akkoma.zip -d /tmp/ && \ | ||||||
|  |     mv /tmp/release/* /opt/akkoma && \ | ||||||
|  |     rmdir /tmp/release && \ | ||||||
|  |     rm /tmp/akkoma.zip && \ | ||||||
|  |     chown akkoma -R /opt/akkoma | ||||||
|  |  | ||||||
|  | VOLUME /data | ||||||
|  | VOLUME /config | ||||||
|  |  | ||||||
|  | WORKDIR /opt/akkoma | ||||||
|  |  | ||||||
|  | EXPOSE 4000 | ||||||
|  |  | ||||||
|  | ENTRYPOINT [ "/entrypoint.sh" ] | ||||||
|  | CMD [ "pleroma", "start" ] | ||||||
							
								
								
									
										21
									
								
								entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | if [ "$1" = 'pleroma' ] || [ "$1" = 'pleroma_ctl' ] | ||||||
|  | then | ||||||
|  |  | ||||||
|  |     mkdir -p /data/{uploads,static} | ||||||
|  |     mkdir -p /config | ||||||
|  |     chown -R akkoma /data /config | ||||||
|  |  | ||||||
|  |     echo $0: executing \"pleroma_ctl migrate\" | ||||||
|  |  | ||||||
|  |     pleroma_ctl migrate | ||||||
|  |  | ||||||
|  |     echo $0: executing \"$@\" | ||||||
|  |  | ||||||
|  |     exec su-exec akkoma "$@" | ||||||
|  |  | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | exec "$@" | ||||||
		Reference in New Issue
	
	Block a user