Initial commit
This commit is contained in:
commit
194457e662
|
|
@ -0,0 +1 @@
|
||||||
|
www/*
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
FROM nginx
|
||||||
|
|
||||||
|
ENV WEBROOT /var/www
|
||||||
|
ENV RSR_FTP_HOST ftps://ftps.rsrgroup.com
|
||||||
|
ENV RSR_USER 46554
|
||||||
|
ENV RSR_PASS 1XXXR3Ea
|
||||||
|
|
||||||
|
|
||||||
|
RUN apt update && apt install -y \
|
||||||
|
cron \
|
||||||
|
lftp \
|
||||||
|
vim
|
||||||
|
|
||||||
|
ADD app /opt/app
|
||||||
|
COPY crontab /etc/crontab
|
||||||
|
COPY default.conf /etc/nginx/conf.d/default.conf
|
||||||
|
COPY docker-entrypoint.sh /start.sh
|
||||||
|
|
||||||
|
CMD /start.sh
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
use strict;
|
||||||
|
use File::Path qw/make_path/;
|
||||||
|
|
||||||
|
my $pidpath = '/tmp/runonce_pid';
|
||||||
|
|
||||||
|
if(!-d $pidpath) {
|
||||||
|
make_path($pidpath) || die "Unable to create $pidpath: $!\n";
|
||||||
|
chmod(0777, $pidpath) || die "Unable to chmod $pidpath: $!\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $waitmode=0;
|
||||||
|
if(lc($ARGV[0]) eq '-w') {
|
||||||
|
$waitmode=1;
|
||||||
|
shift(@ARGV);
|
||||||
|
}
|
||||||
|
|
||||||
|
my($tag,@cmd)=@ARGV;
|
||||||
|
if(!$tag || !@cmd) {
|
||||||
|
die "Usage: $0 <tag> <cmd>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
my $file = "$pidpath/$tag";
|
||||||
|
for(;;) {
|
||||||
|
if(-e $file) {
|
||||||
|
open(IN, $file) || die "Unable to read $file: $!\n";
|
||||||
|
my $pid=<IN>;
|
||||||
|
close(IN);
|
||||||
|
chomp($pid);
|
||||||
|
|
||||||
|
if(kill(0, $pid)) {
|
||||||
|
print "$pid is alive\n";
|
||||||
|
exit(0) unless($waitmode);
|
||||||
|
sleep(1);
|
||||||
|
} else {
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open(OUT, ">", $file) || die "Unable to write $file: $!\n";
|
||||||
|
print OUT $$;
|
||||||
|
close(OUT);
|
||||||
|
|
||||||
|
my $res=system(@cmd);
|
||||||
|
|
||||||
|
unlink($file) || die "Unable to unlink $file: $!\n";
|
||||||
|
exit($res);
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export SUBDIRS="ftp_images ftp_highres_images"
|
||||||
|
export HOST
|
||||||
|
|
||||||
|
for d in $SUBDIRS
|
||||||
|
do
|
||||||
|
export LOCALDIR="$WEBROOT/images/$d"
|
||||||
|
export REMOTEDIR="/$d/rsr_number"
|
||||||
|
|
||||||
|
echo "Copy '$RSR_FTP_HOST:$REMOTEDIR' to '$LOCALDIR'"
|
||||||
|
lftp -c "set ftp:ssl-auth TLS;
|
||||||
|
open ftp://$RSR_USER:$RSR_PASS@ftps.rsrgroup.com:2222;
|
||||||
|
mirror --verbose --only-missing $REMOTEDIR $LOCALDIR"
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
find $WEBROOT/images | perl -pe 's/^\/var\/www//' | sort > $WEBROOT/images.txt
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
# /etc/crontab: system-wide crontab
|
||||||
|
# Unlike any other crontab you don't have to run the `crontab'
|
||||||
|
# command to install the new version when you edit this file
|
||||||
|
# and files in /etc/cron.d. These files also have username fields,
|
||||||
|
# that none of the other crontabs do.
|
||||||
|
|
||||||
|
SHELL=/bin/sh
|
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||||
|
|
||||||
|
# Example of job definition:
|
||||||
|
# .---------------- minute (0 - 59)
|
||||||
|
# | .------------- hour (0 - 23)
|
||||||
|
# | | .---------- day of month (1 - 31)
|
||||||
|
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
|
||||||
|
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|
||||||
|
# | | | | |
|
||||||
|
# * * * * * user-name command to be executed
|
||||||
|
17 * * * * root cd / && run-parts --report /etc/cron.hourly
|
||||||
|
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
|
||||||
|
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
|
||||||
|
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
|
||||||
|
0 */6 * * * root /opt/app/runonce UPDATE_RSR_IMAGES /opt/app/update_rsr_images > /root/update_rsr_images.log
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/host.access.log main;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /var/www;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
#error_page 404 /404.html;
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
#
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
|
||||||
|
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# proxy_pass http://127.0.0.1;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
|
||||||
|
#
|
||||||
|
#location ~ \.php$ {
|
||||||
|
# root html;
|
||||||
|
# fastcgi_pass 127.0.0.1:9000;
|
||||||
|
# fastcgi_index index.php;
|
||||||
|
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
|
||||||
|
# include fastcgi_params;
|
||||||
|
#}
|
||||||
|
|
||||||
|
# deny access to .htaccess files, if Apache's document root
|
||||||
|
# concurs with nginx's one
|
||||||
|
#
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
service cron start
|
||||||
|
nginx -g "daemon off;"
|
||||||
Loading…
Reference in New Issue