Browse Source

Mystic Image builder

Use dcb to build.  Needs newest docker-compose.
Parallel build.  WOOHOO.
bugz 4 years ago
commit
351d872c3b
12 changed files with 215 additions and 0 deletions
  1. 4 0
      dcb
  2. 58 0
      docker-compose.yml
  3. 3 0
      image/.dockerignore
  4. 48 0
      image/Dockerfile
  5. 48 0
      image/Dockerfile_proxy
  6. 8 0
      image/Dockerfile~
  7. 17 0
      image/NOTES.txt
  8. 29 0
      image/bootup.sh
  9. BIN
      image/cl3441.zip
  10. BIN
      image/cryptlib345.zip
  11. BIN
      image/libcl.so.3.4.4
  12. BIN
      image/libcl.so.3.4.5

+ 4 - 0
dcb

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
+

+ 58 - 0
docker-compose.yml

@@ -0,0 +1,58 @@
+
+version: '2.2'
+
+services:
+  bbs:
+    build: image
+    # image: live_bbs
+    image: bbs_try
+    # build: ubuntu
+    volumes:
+      - ./system:/home/mystic/mystic/
+      - ./dosemu:/home/mystic/.dosemu
+      - /etc/localtime:/etc/localtime:ro
+      - /sys/fs/cgroup:/sys/fs/cgroup:rw
+    #  - ./autoexec.bat:/home/mystic/.dosemu/drive_c/autoexec.bat:ro
+    #  - ./config.sys:/home/mystic/.dosemu/drive_c/config.sys:ro
+    #  For local X windows:
+      - /tmp/.X11-unix/X0:/tmp/.X11-unix/X0
+
+    ports:
+      - "4022:4022"
+      - "4023:4023"
+      - "2023:4023"
+      - "23:4023"
+      - "2022:4022"
+      # - "22:4022"
+      - "24554:24554"
+    working_dir: /home/mystic/mystic/bbs
+    # entrypoint: ["./startup.sh"] 
+    # /mis", "server"]
+    tty: true
+    stdin_open: true
+    environment:
+      - DISPLAY=:0
+        #  - DISPLAY=vnc:99
+
+    # This should reap our zombies
+    init: true
+    # restart: always
+
+  # vnc:
+  #   build: vnc
+  #   environment:
+  #     - DISPLAY=:99
+  #     - VNC_PW=password
+  #   ports:
+  #     - "5999:5999"
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "1m"
+        max-file: "7"
+
+        # vnc:
+    # image: metal3d/xvfb
+    # build: xvfb
+    # restart: always
+

+ 3 - 0
image/.dockerignore

@@ -0,0 +1,3 @@
+*~
+cl3441.zip
+mys112a39_l64.rar

+ 48 - 0
image/Dockerfile

@@ -0,0 +1,48 @@
+FROM debian:stretch-slim as build
+
+WORKDIR /root
+# RUN apt-get update; apt-get -y install wget build-essential manpages-dev unzip; 
+# RUN export http_proxy=http://192.168.254.83:3142 \
+RUN apt-get update && apt-get -y install wget build-essential unzip
+ADD ./cryptlib345.zip cryptlib345.zip
+RUN unzip -a cryptlib345.zip; \
+ make shared; \
+ mv /root/libcl.so.3.4.5 /lib/libcl.so
+
+FROM debian:stretch-slim
+
+# Allow for UID to be set
+ARG UID=1000
+
+RUN sed -i "s#deb http://deb.debian.org/debian stretch main#deb http://deb.debian.org/debian stretch main contrib non-free#g" /etc/apt/sources.list
+# ADD ./libcl.so /lib/libcl.so
+# ADD ./libcl.so.3.4.4 /lib/libcl.so
+
+# RUN export http_proxy=http://192.168.254.83:3142 \
+RUN dpkg --add-architecture i386 \
+ && apt-get update \
+ && apt-get -y upgrade \
+ && apt-get install -y dosemu libc6:i386 procps libhunspell-dev vim mc zip python libpython2.7 less sudo cgroup-bin python3 python3-venv elinks \
+ && useradd -u ${UID} -ms /bin/bash mystic 
+
+# fixup dosemu
+USER mystic
+RUN mkdir -p ~/.dosemu/drives && \
+ cd ~/.dosemu/drives && \
+ ln -s /home/mystic/.dosemu/drive_c c && \
+ ln -s /usr/lib/dosemu/drive_z d
+
+USER root
+COPY --from=build /lib/libcl.so /lib/libcl.so
+ADD ./bootup.sh /bootup.sh
+
+# Need to remain root so script can setup cgroups / then
+# it can run ./startup.sh as mystic.
+
+# USER mystic
+WORKDIR /home/mystic/mystic/bbs
+# ENV DISPLAY=:1
+# ENV LC_ALL=en_UTF-8
+
+ENTRYPOINT ["/bootup.sh"]
+# ENTRYPOINT ./startup.sh

+ 48 - 0
image/Dockerfile_proxy

@@ -0,0 +1,48 @@
+FROM debian:stretch-slim as build
+
+WORKDIR /root
+# RUN apt-get update; apt-get -y install wget build-essential manpages-dev unzip; 
+RUN export http_proxy=http://192.168.254.83:3142 \
+  && apt-get update && apt-get -y install wget build-essential unzip
+ADD ./cryptlib345.zip cryptlib345.zip
+RUN unzip -a cryptlib345.zip; \
+ make shared; \
+ mv /root/libcl.so.3.4.5 /lib/libcl.so
+
+FROM debian:stretch-slim
+
+# Allow for UID to be set
+ARG UID=1000
+
+RUN sed -i "s#deb http://deb.debian.org/debian stretch main#deb http://deb.debian.org/debian stretch main contrib non-free#g" /etc/apt/sources.list
+# ADD ./libcl.so /lib/libcl.so
+# ADD ./libcl.so.3.4.4 /lib/libcl.so
+
+RUN export http_proxy=http://192.168.254.83:3142 \
+ && dpkg --add-architecture i386 \
+ && apt-get update \
+ && apt-get -y upgrade \
+ && apt-get install -y dosemu libc6:i386 procps libhunspell-dev vim mc zip python libpython2.7 less sudo cgroup-bin python3 python3-venv elinks \
+ && useradd -u ${UID} -ms /bin/bash mystic 
+
+# fixup dosemu
+USER mystic
+RUN mkdir -p ~/.dosemu/drives && \
+ cd ~/.dosemu/drives && \
+ ln -s /home/mystic/.dosemu/drive_c c && \
+ ln -s /usr/lib/dosemu/drive_z d
+
+USER root
+COPY --from=build /lib/libcl.so /lib/libcl.so
+ADD ./bootup.sh /bootup.sh
+
+# Need to remain root so script can setup cgroups / then
+# it can run ./startup.sh as mystic.
+
+# USER mystic
+WORKDIR /home/mystic/mystic/bbs
+# ENV DISPLAY=:1
+# ENV LC_ALL=en_UTF-8
+
+ENTRYPOINT ["/bootup.sh"]
+# ENTRYPOINT ./startup.sh

+ 8 - 0
image/Dockerfile~

@@ -0,0 +1,8 @@
+
+FROM debian:stretch-slim
+ADD ./libcl.so /lib/libcl.so
+RUN apt-get update; apt-get upgrade; apt-get install -y dosemu
+RUN useradd -ms /bin/bash mystic
+USER mystic
+WORKDIR /home/mystic
+

+ 17 - 0
image/NOTES.txt

@@ -0,0 +1,17 @@
+
+http://wiki.mysticbbs.com/doku.php?id=cryptlib
+
+Setting up SSH on Mystic
+
+
+
+https://www.cs.auckland.ac.nz/~pgut001/cryptlib/download.html
+
+
+https://cryptlib-release.s3-ap-southeast-1.amazonaws.com/cryptlib345.zip
+
+
+
+
+
+

+ 29 - 0
image/bootup.sh

@@ -0,0 +1,29 @@
+#!/bin/bash
+
+QUOTA=15000
+PERIOD=50000
+
+# initialize cgroups
+for n in {0..8}
+do
+  cgcreate -a mystic -t mystic -g cpu:node$n
+  if [ $? -ne 0 ]
+  then
+    echo "=================================================================="
+    echo "Failed to create cgroup."
+    echo "------------------------------------------------------------------"
+    echo "Does container have the priviledges it needs to run?"
+    echo "HINT: Use -v /sys/fs/cgroup:/sys/fs/cgroup:rw"
+    echo "=================================================================="
+    exit 1
+  fi
+  /bin/echo $QUOTA > /sys/fs/cgroup/cpu/node$n/cpu.cfs_quota_us
+  /bin/echo $PERIOD > /sys/fs/cgroup/cpu/node$n/cpu.cfs_period_us
+done
+
+# Call original startup script as mystic user
+cd /home/mystic/mystic/bbs
+
+# I can't get this to work, this script is still pid 1.  
+exec sudo -u mystic ./startup.sh
+

BIN
image/cl3441.zip


BIN
image/cryptlib345.zip


BIN
image/libcl.so.3.4.4


BIN
image/libcl.so.3.4.5