Explorar o código

Merge branch 'master' of github.com:teodesian/tCMS

George S. Baugh %!s(int64=4) %!d(string=hai) anos
pai
achega
339707f4d7
Modificáronse 7 ficheiros con 24 adicións e 65 borrados
  1. 1 1
      Dockerfile
  2. 4 13
      Dockerfile.build
  3. 0 38
      Dockerfile.centos
  4. 2 1
      Makefile
  5. 0 3
      deploy-centos.sh
  6. 10 7
      docker-exfil.sh
  7. 7 2
      lib/Trog/Data/FlatFile.pm

+ 1 - 1
Dockerfile

@@ -1,4 +1,4 @@
-FROM troglodyne/base:latest AS tcms
+FROM troglodyne/base:latest
 
 ARG port=5000
 LABEL description="tCMS: a Perl CMS by Troglodyne LLC"

+ 4 - 13
Dockerfile.build

@@ -1,9 +1,7 @@
-FROM ubuntu:21.04 AS base
+FROM ubuntu:21.04
 
 USER root
 RUN useradd tcms
-RUN apt-get update
-RUN apt-get install -y make apt-utils mlocate curl
 
 ADD ./Makefile /home/tcms/Makefile
 ADD ./Makefile.PL /home/tcms/Makefile.PL
@@ -13,14 +11,7 @@ RUN chown -R tcms /home/tcms
 
 WORKDIR /home/tcms
 
-RUN apt-get install -y locales
-RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
-ENV LANG en_US.utf8
-
-ENV DEBIAN_FRONTEND=noninteractive
-RUN ln -fs /usr/share/zoneinfo/UTC /etc/localtime
-RUN apt-get install -y tzdata
-RUN dpkg-reconfigure --frontend noninteractive tzdata
-
+RUN apt-get update
+RUN apt-get upgrade -y
+RUN apt-get install -y make
 RUN make prereq-debian
-RUN updatedb

+ 0 - 38
Dockerfile.centos

@@ -1,38 +0,0 @@
-FROM ubuntu:21.04
-
-USER root
-RUN useradd tcms
-RUN apt-get update
-RUN apt-get install -y make apt-utils mlocate
-
-ADD . /home/tcms
-RUN mkdir /home/tcms/.tcms
-RUN mkdir -p /home/tcms/www/scripts
-RUN chown -R tcms /home/tcms
-
-WORKDIR /home/tcms
-
-RUN apt-get install -y locales
-RUN localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
-ENV LANG en_US.utf8
-
-ENV DEBIAN_FRONTEND=noninteractive
-RUN ln -fs /usr/share/zoneinfo/UTC /etc/localtime
-RUN apt-get install -y tzdata
-RUN dpkg-reconfigure --frontend noninteractive tzdata
-
-RUN make prereq-debian
-RUN updatedb
-
-ARG port=5000
-LABEL description="tCMS: a Perl CMS by Troglodyne LLC"
-
-ADD ./Makefile /home/tcms/Makefile
-
-RUN chown -R tcms /home/tcms
-
-USER tcms
-
-RUN make install
-RUN make reset-dummy-data
-CMD /usr/bin/starman -p $port www/server.psgi

+ 2 - 1
Makefile

@@ -26,11 +26,12 @@ prereq-debian: prereq-debs prereq-perl prereq-frontend
 
 .PHONY: prereq-debs
 prereq-debs:
+	apt-get update
 	apt-get install -y sqlite3 libsqlite3-dev libdbd-sqlite3-perl cpanminus starman libxml2 curl                         \
 	    libtext-xslate-perl libplack-perl libconfig-tiny-perl libdatetime-format-http-perl libjson-maybexs-perl          \
 	    libuuid-tiny-perl libcapture-tiny-perl libconfig-simple-perl libdbi-perl libfile-slurper-perl libfile-touch-perl \
 	    libfile-copy-recursive-perl libxml-rss-perl libmodule-install-perl libio-string-perl                             \
-	    libmoose-perl libmoosex-types-datetime-perl libxml-libxml-perl
+	    libmoose-perl libmoosex-types-datetime-perl libxml-libxml-perl curl
 
 .PHONY: prereq-perl
 prereq-perl:

+ 0 - 3
deploy-centos.sh

@@ -1,3 +0,0 @@
-#!/bin/sh
-docker build -t troglodyne/tcms . -f Dockerfile.centos
-docker run -dp 5000:5000 troglodyne/tcms:latest "//usr/bin/starman" "www/server.psgi"

+ 10 - 7
docker-exfil.sh

@@ -1,8 +1,11 @@
 #!/bin/sh
-sudo docker cp $1:/home/tcms/config $PWD
-sudo docker cp $1:/home/tcms/data $PWD
-sudo docker cp $1:/home/tcms/www/assets $PWD/www
-sudo chown -R $USER:$USER $PWD/config/
-sudo chown -R $USER:$USER $PWD/data/
-sudo chown -R $USER:$USER $PWD/www/assets/
-sudo docker kill $1
+docker cp $1:/home/tcms/config $PWD
+docker cp $1:/home/tcms/data $PWD
+docker cp $1:/home/tcms/www/assets $PWD/www
+if [ $user ]
+then
+    chown -R $USER:$USER $PWD/config/
+    chown -R $USER:$USER $PWD/data/
+    chown -R $USER:$USER $PWD/www/assets/
+fi
+docker kill $1

+ 7 - 2
lib/Trog/Data/FlatFile.pm

@@ -54,8 +54,13 @@ sub read ($self, $query={}) {
         }
         my $parsed  = eval { $parser->decode($slurped) };
         if (!$parsed) {
-            print "JSON Decode error on $item:\n$@\n";
-            next;
+            # Try and read it in binary in case it was encoded incorrectly the first time
+	    $slurped = eval { File::Slurper::read_binary($item) };
+	    $parsed  = eval { $parser->decode($slurped) };
+	    if (!$parsed) {
+                print "JSON Decode error on $item:\n$@\n";
+                next;
+            }
         }
 
         #XXX this imposes an inefficiency in itself, get() will filter uselessly again here