From 66cc87ca28f7325f5df2fd264127a3f5217b304c Mon Sep 17 00:00:00 2001 From: hyang Date: Sun, 10 Sep 2023 15:51:01 -0700 Subject: rework docker --- Dockerfile | 5 ++- docker-entrypoint.sh | 99 ---------------------------------------------------- nginx-entrypoint.sh | 92 ++++++++++++++++++++++++++++++++++++++++++++++++ watch.sh | 5 +-- 4 files changed, 99 insertions(+), 102 deletions(-) delete mode 100644 docker-entrypoint.sh create mode 100755 nginx-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 223dccc..fce349d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,6 +4,9 @@ RUN apk add --no-cache hugo git nginx openssh WORKDIR /app +COPY ./watch.sh / +COPY ./nginx-entrypoint.sh / + EXPOSE 8080/tcp -CMD git clone "$REPO" ./ && /bin/sh -c './watch.sh' && hugo && nginx -g 'daemon off;' +ENTRYPOINT git clone "$REPO" . && git submodule update --init && /bin/sh -c '/watch.sh &' ls && hugo && /nginx-entrypoint.sh && nginx -g 'daemon off;' diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh deleted file mode 100644 index 690fb49..0000000 --- a/docker-entrypoint.sh +++ /dev/null @@ -1,99 +0,0 @@ -mkdir -p /var/www/hugo_pub -cp -r ./public /var/www/hugo_pub - -cat < /etc/nginx/nginx.conf -user nginx; - -# Set number of worker processes automatically based on number of CPU cores. -worker_processes auto; - -# Enables the use of JIT for regular expressions to speed-up their processing. -pcre_jit on; - -# Configures default error logger. -error_log /var/log/nginx/error.log warn; - -# Includes files with directives to load dynamic modules. -include /etc/nginx/modules/*.conf; - -# Include files with config snippets into the root context. -include /etc/nginx/conf.d/*.conf; - -events { - # The maximum number of simultaneous connections that can be opened by - # a worker process. - worker_connections 1024; -} - -http { - # Includes mapping of file name extensions to MIME types of responses - # and defines the default type. - include /etc/nginx/mime.types; - default_type application/octet-stream; - - # Name servers used to resolve names of upstream servers into addresses. - # It's also needed when using tcpsocket and udpsocket in Lua modules. - #resolver 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001; - - # Don't tell nginx version to the clients. Default is 'on'. - server_tokens off; - - # Specifies the maximum accepted body size of a client request, as - # indicated by the request header Content-Length. If the stated content - # length is greater than this size, then the client receives the HTTP - # error code 413. Set to 0 to disable. Default is '1m'. - client_max_body_size 1m; - - # Sendfile copies data between one FD and other from within the kernel, - # which is more efficient than read() + write(). Default is off. - sendfile on; - - # Causes nginx to attempt to send its HTTP response head in one packet, - # instead of using partial frames. Default is 'off'. - tcp_nopush on; - - # Enable gzipping of responses. - gzip on; - - # Set the Vary HTTP header as defined in the RFC 2616. Default is 'off'. - gzip_vary on; - - - # Helper variable for proxying websockets. - map $http_upgrade $connection_upgrade { - default upgrade; - '' close; - } - - - # Specifies the main log format. - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - # Sets the path, format, and configuration for a buffered log write. - access_log /var/log/nginx/access.log main; - - - # Includes virtual hosts configs. - include /etc/nginx/http.d/*.conf; -} -EOF - -cat < /etc/nginx/http.d/hugo.conf -server { - # Listen on port 80 for HTTP requests - listen 8080; - - # Root directory for serving web content for this virtual host - root /var/www/hugo_pub; - - # Default index file for this virtual host - index index.html index.htm; - - # Logging configuration - access_log /var/log/nginx/hugo_pub_access.log; - error_log /var/log/nginx/hugo_pub_error.log; -} -EOF - diff --git a/nginx-entrypoint.sh b/nginx-entrypoint.sh new file mode 100755 index 0000000..b7fadba --- /dev/null +++ b/nginx-entrypoint.sh @@ -0,0 +1,92 @@ +mkdir -p /var/www/hugo_pub +cp -r ./public/* /var/www/hugo_pub +chown -R root:www-data /var/www/hugo_pub + +cat < /etc/nginx/nginx.conf +user nginx; + +# Set number of worker processes automatically based on number of CPU cores. +worker_processes auto; + +# Enables the use of JIT for regular expressions to speed-up their processing. +pcre_jit on; + +# Configures default error logger. +error_log /var/log/nginx/error.log warn; + +# Includes files with directives to load dynamic modules. +include /etc/nginx/modules/*.conf; + +# Include files with config snippets into the root context. +include /etc/nginx/conf.d/*.conf; + +events { + # The maximum number of simultaneous connections that can be opened by + # a worker process. + worker_connections 1024; +} + +http { + # Includes mapping of file name extensions to MIME types of responses + # and defines the default type. + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # Name servers used to resolve names of upstream servers into addresses. + # It's also needed when using tcpsocket and udpsocket in Lua modules. + #resolver 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001; + + # Don't tell nginx version to the clients. Default is 'on'. + server_tokens off; + + # Specifies the maximum accepted body size of a client request, as + # indicated by the request header Content-Length. If the stated content + # length is greater than this size, then the client receives the HTTP + # error code 413. Set to 0 to disable. Default is '1m'. + client_max_body_size 1m; + + # Sendfile copies data between one FD and other from within the kernel, + # which is more efficient than read() + write(). Default is off. + sendfile on; + + # Causes nginx to attempt to send its HTTP response head in one packet, + # instead of using partial frames. Default is 'off'. + tcp_nopush on; + + # Enable gzipping of responses. + gzip on; + + # Set the Vary HTTP header as defined in the RFC 2616. Default is 'off'. + gzip_vary on; + + # Specifies the main log format. + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + # Sets the path, format, and configuration for a buffered log write. + access_log /var/log/nginx/access.log main; + + + # Includes virtual hosts configs. + include /etc/nginx/http.d/*.conf; +} +EOF + +cat < /etc/nginx/http.d/hugo.conf +server { + # Listen on port 80 for HTTP requests + listen 8080; + + # Root directory for serving web content for this virtual host + root /var/www/hugo_pub; + + # Default index file for this virtual host + index index.html index.htm; + + # Logging configuration + access_log /var/log/nginx/hugo_pub_access.log; + error_log /var/log/nginx/hugo_pub_error.log; +} +EOF + diff --git a/watch.sh b/watch.sh index ddf88f9..aeb2b75 100755 --- a/watch.sh +++ b/watch.sh @@ -1,7 +1,8 @@ #!/bin/sh while true; do - git fetch && git reset --hard origin - sleep 60 + (git fetch && git reset --hard origin) || git clone "$REPO" . && git submodule update --init + git submodule update --remote + sleep 300 done -- cgit v1.2.3