make docker better

This commit is contained in:
Revvy 2023-10-09 07:38:55 -04:00
parent 2ae29a2cf7
commit 2a3ab3a19e
No known key found for this signature in database
GPG key ID: 1846DE3699085927
6 changed files with 44 additions and 58 deletions

7
.dockerignore Normal file
View file

@ -0,0 +1,7 @@
.github/
.git/
.gitignore
.dockerignore
docker-compose.yml
Dockerfile
README.md

View file

@ -1,42 +1,17 @@
FROM alpine:3.18
FROM nginx:mainline-alpine-slim
WORKDIR "/var/www/html"
RUN apk add php82 php82-fpm php82-dom php82-curl php82-json php82-openssl --no-cache
RUN sed -i 's/user nginx;/user nobody;/' /etc/nginx/nginx.conf \
&& sed -i 's/listen = 127.0.0.1:9000/listen = \/run\/php-fpm82.sock/' /etc/php82/php-fpm.d/www.conf \
&& sed -i 's/;listen.owner/listen.owner/' /etc/php82/php-fpm.d/www.conf \
&& sed -i 's/;listen.group/listen.group/' /etc/php82/php-fpm.d/www.conf \
&& sed -i 's/;listen.mode/listen.mode/' /etc/php82/php-fpm.d/www.conf \
&& sed -i 's/;listen.allowed_clients/listen.allowed_clients/' /etc/php82/php-fpm.d/www.conf
ADD "." "."
RUN mkdir -p /var/www/binternet
COPY . /var/www/binternet
COPY nginx.conf /etc/nginx/conf.d/binternet.conf
RUN rm /var/www/binternet/nginx.conf /etc/nginx/conf.d/default.conf
# Docker metadata contains information about the maintainer, such as the name, repository, and support email
# See more: https://docs.docker.com/config/labels-custom-metadata/
LABEL name="Binternet" \
description="A custom Pinterest frontend, made in PHP." \
version="1.0" \
vendor="Ahwx <ahwx.org>" \
maintainer="Ahwx <ahwx.org>" \
url="https://github.com/Ahwxorg/LibreY" \
authors="https://github.com/Ahwxorg/LibreY/contributors"
# Include arguments as temporary environment variables to be handled by Docker during the image build process
# Change or add new arguments to customize the image generated by 'docker build' command
ARG DOCKER_SCRIPTS="docker"
ARG NGINX_PORT=8009
# Set this argument during build time to indicate that the path is for php's www.conf
ARG WWW_CONFIG="/etc/php82/php-fpm.d/www.conf"
# Customize the environment during both execution and build time by modifying the environment variables added to the container's shell
# When building your image, make sure to set the 'TZ' environment variable to your desired time zone location, for example 'America/Sao_Paulo'
# See more: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
ENV TZ="Europe/Amsterdam"
# Install required packages
RUN apk add gettext php82 php82-fpm php82-dom php82-curl php82-json nginx --no-cache
# Configure PHP-FPM to listen on a Unix socket instead of a TCP port, which is more secure and efficient
RUN touch /run/php-fpm82.sock && chown nginx:nginx "/run/php-fpm82.sock"
RUN sed -i 's/^\s*listen = 127.0.0.1:9000/listen = \/run\/php-fpm82.sock/' ${WWW_CONFIG} &&\
sed -i 's/^\s*;\s*listen.owner = nobody/listen.owner = nginx/' ${WWW_CONFIG} &&\
sed -i 's/^\s*;\s*listen.group = nobody/listen.group = nginx/' ${WWW_CONFIG} &&\
sed -i 's/^\s*;\s*listen.mode = 0660/listen.mode = 0660/' ${WWW_CONFIG}
EXPOSE ${NGINX_PORT}
# Configures the container to be run as an executable.
ENTRYPOINT ["/bin/sh", "-c", "docker/entrypoint.sh"]
EXPOSE 80
ENTRYPOINT ["/bin/sh", "-c" , "/usr/sbin/php-fpm82 -D && /usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;'"]

View file

@ -1,5 +0,0 @@
echo Version?
read -r VERSION
docker build -t binternet:$VERSION . && docker tag binternet:$VERSION ahwx/binternet:$VERSION && docker push ahwx/binternet:$VERSION
docker build -t binternet:latest . && docker tag binternet:latest ahwx/binternet:latest && docker push ahwx/binternet:latest

View file

@ -1,7 +0,0 @@
version: '3.3'
services:
binternet:
ports:
- '8015:8009'
container_name: binternet
image: 'ghcr.io/ahwxorg/binternet:latest'

7
docker-compose.yml Normal file
View file

@ -0,0 +1,7 @@
version: '3.3'
services:
binternet:
container_name: binternet
image: ghcr.io/ahwxorg/binternet:latest
ports:
- '8080:80'

View file

@ -1,11 +1,20 @@
server {
listen 8009;
listen 80 default_server;
server_name _;
root /var/www/html/binternet;
index index.php;
root /var/www/binternet;
index index.php;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm82.sock;
fastcgi_index index.php;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
include fastcgi_params;
}
}