Compare commits

...
This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.

20 Commits

Author SHA1 Message Date
Deon George
32c5348864 Fixed timezone for Mystic 2019-06-21 17:15:22 +10:00
Deon George
a614fcadf9 Version update for .gitlab-ci 2019-04-07 23:37:19 +10:00
Deon George
739f9a75bc Update to 1.12A43 added ZeroTier 2019-04-07 23:03:49 +10:00
Deon George
219697e2d1 Added temp paths to avoid cross device issues 2019-02-16 21:48:16 +11:00
Deon George
c8c5cbcd6c Change version 2019-02-03 11:43:25 +11:00
Deon George
f16644ac15 Change gitlab-ci tag 2019-02-03 11:29:46 +11:00
Deon George
dbd8bc3a99 Update to 1.12A42 2019-02-03 11:24:41 +11:00
Deon George
48cf62dd15 Fix trigger for armv7l 2018-09-14 21:32:05 +10:00
Deon George
cf18917a39 Added custom scripts in data 2018-09-14 21:17:16 +10:00
Deon George
bde5de7730 Showing msg on first install about data dir 2018-09-13 23:35:11 +10:00
Deon George
03851190a2 Moved build trigger token to a variable 2018-09-03 10:15:15 +10:00
Deon George
99dbc6b4b6 Added curl as a pre-req 2018-09-03 09:50:26 +10:00
Deon George
cb74c9599b Moved trigger to build 2018-09-03 09:43:01 +10:00
Deon George
abe95e8fd8 Updated trigger-build-ci to include runner tags 2018-09-03 09:36:28 +10:00
Deon George
f22ef035cc Minor tweeking 2018-09-03 09:28:02 +10:00
Deon George
25fb0567df Added tempdirs to data path 2018-09-02 23:27:38 +10:00
Deon George
b0f48263aa Updated apt url, trigger rebuild 2018-08-30 13:22:10 +10:00
Deon George
3f4890970a Added Python to the base image 2018-08-30 00:33:58 +10:00
Deon George
fa04bef3de Updated libcl to stretch compile 2018-08-27 20:07:49 +10:00
Deon George
3e961b585e Update to stretch 2018-08-27 00:30:33 +10:00
9 changed files with 170 additions and 21 deletions

View File

@ -1,3 +1,4 @@
cleaninstall/ cleaninstall/
.git/ .git/
Makefile Makefile
devel/

View File

@ -5,7 +5,7 @@ stages:
- build - build
variables: variables:
VERSION: 1.12a39-${CI_COMMIT_REF_NAME} VERSION: 1.12a43-${CI_COMMIT_REF_NAME}
CACHETAG: build-${CI_COMMIT_REF_NAME} CACHETAG: build-${CI_COMMIT_REF_NAME}
DOCKER_HOST: tcp://docker:2375 DOCKER_HOST: tcp://docker:2375
@ -13,6 +13,7 @@ services:
- docker:dind - docker:dind
before_script: before_script:
- apk add curl
- docker info - docker info
- docker version - docker version
- echo "$CI_JOB_TOKEN" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin - echo "$CI_JOB_TOKEN" | docker login -u "$CI_REGISTRY_USER" "$CI_REGISTRY" --password-stdin
@ -37,7 +38,9 @@ build:
- docker build --cache-from ${CI_REGISTRY_IMAGE}:${CACHETAG} -t ${CI_REGISTRY_IMAGE}:${VERSION} -t ${CI_REGISTRY_IMAGE}:${CACHETAG} . - docker build --cache-from ${CI_REGISTRY_IMAGE}:${CACHETAG} -t ${CI_REGISTRY_IMAGE}:${VERSION} -t ${CI_REGISTRY_IMAGE}:${CACHETAG} .
- docker push ${CI_REGISTRY_IMAGE}:${VERSION} - docker push ${CI_REGISTRY_IMAGE}:${VERSION}
- docker push ${CI_REGISTRY_IMAGE}:${CACHETAG} - docker push ${CI_REGISTRY_IMAGE}:${CACHETAG}
- if [ -n "${TRIGGER_PIPELINE}" ]; then curl -sSX POST -F token=${TRIGGER_PIPELINE} -F ref=armv7l-extras http://dev.leenooks.net/api/v4/projects/45/trigger/pipeline > /dev/null; fi
tags: tags:
- docker-armv7l - docker
- armv7l
only: only:
- armv7l - armv7l

View File

@ -1,31 +1,52 @@
# NAME leenooks/mysticbbs # NAME leenooks/mysticbbs
# VERSION 1.12a39-armv7l # VERSION 1.12a43
FROM arm32v7/debian:jessie-slim FROM debian:stretch-slim
MAINTAINER Deon George <deon@leenooks.net> MAINTAINER Deon George <deon@leenooks.net>
# Pre-requisites # Pre-requisites
# + Base application requires unzip zip curl libhunspell-dev libpython2.7
RUN apt-get update \ RUN apt-get update \
&& apt-get install -yqq unzip zip curl libhunspell-dev \ && apt-get install -yqq unzip zip curl libhunspell-dev libpython2.7 patch \
&& rm -rf /var/lib/apt/lists/* /tmp/* && rm -rf /var/lib/apt/lists/* /tmp/*
# For SSH connections and Spell # Add in Leenooks' apt repository
ADD libcl.so.3.4.3 /usr/lib RUN curl -s http://apt.leenooks.net/setup.sh | sh
RUN ln -sf libcl.so.3.4.3 /usr/lib/libcl.so
RUN ln -sf /usr/lib/arm-linux-gnueabihf/libhunspell-1.3.so.0 /usr/lib/libhunspell.so
RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime # For SSH connections
RUN apt-get update \
&& apt-get install --allow-unauthenticated -yqq libcl \
&& rm -rf /var/lib/apt/lists/* /tmp/*
RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime && echo 'Australia/Melbourne' > /etc/timezone
WORKDIR /mystic WORKDIR /mystic
ENV mysticbbs /mystic/data ENV mysticbbs /mystic/data
EXPOSE 22 23 24554 EXPOSE 22 23 24554
COPY init /sbin/init
ENTRYPOINT [ "/sbin/init" ]
CMD [ "start" ]
ADD mystic.tar.gz / ADD mystic.tar.gz /
VOLUME ["/mystic/data"] VOLUME ["/mystic/data"]
# Add Mystic Mods # Enable custom scripts to live in the data dir
RUN ln -sf ../data/scripts /mystic/scripts/custom
# Fix temp locations
RUN ln -s data/tempftn /mystic/tempftn && ln -s data/tempmis /mystic/tempmis && ln -s data/temputil /mystic/temputil
# Add ZeroTier
RUN apt-get update \
&& apt-get install -yqq gnupg1 \
&& rm -rf /var/lib/apt/lists/* /tmp/*
RUN echo "deb http://download.zerotier.com/debian/stretch stretch main" > /etc/apt/sources.list.d/zerotier.list
COPY zt-gpg-key /tmp/
RUN apt-key add /tmp/zt-gpg-key
RUN apt-get update \
&& apt-get install -yq zerotier-one \
&& rm -rf /var/lib/apt/lists/* /tmp/*
VOLUME [ "/var/lib/zerotier-one" ]
COPY init /sbin/init
ENTRYPOINT [ "/sbin/init" ]
CMD [ "start" ]

View File

@ -64,4 +64,4 @@ You can also run this in a swarm (I do)!
---- ----
## Extras Container ## Extras Container
There is an "extras" container with some additional MysticBBS mods pre-installed. You'll find info on that in the [armv7l-extras](https://dev.leenooks.net/leenooks/mysticbbs/blob/armv7l-extras/README.md) branch. There is an "extras" container with some additional MysticBBS mods pre-installed. You'll find info on that in the [armv7l-extras](https://dev.leenooks.net/leenooks/mysticbbs/blob/armv7l-extras/README.md#info-on-the-images) branch.

View File

@ -2,20 +2,20 @@
set -e set -e
MYSTIC_SOURCE=${1:-mys112a39_pi.zip} MYSTIC_SOURCE=${1:-mys112a42_pi.zip}
[ "$1" ] && shift [ "$1" ] && shift
SPELL_SOURCE=${1:-mystic_spellcheck_v2.zip} SPELL_SOURCE=${1:-mystic_spellcheck_v2.zip}
[ "$1" ] && shift [ "$1" ] && shift
CLEAN_INSTALL_DIR=x CLEAN_INSTALL_DIR=x
INSTALL_CONTAINER=arm32v7/debian:jessie-slim INSTALL_CONTAINER=debian:stretch-slim
TARGET_DIR=mystic TARGET_DIR=mystic
PATCH_FILE=mystic.112a39.patch PATCH_FILE=mystic.112a39.patch
[ $(id -u) -ne 0 ] && echo "ERROR: You need to run me as root." && exit 1 [ $(id -u) -ne 0 ] && echo "ERROR: You need to run me as root." && exit 1
if [ -d ${TARGET_DIR} ]; then if [ -d ${TARGET_DIR} ]; then
echo "! Skipping installation [$TARGET_DIR} already exists" echo "! Skipping installation [${TARGET_DIR}] already exists"
else else
# 1) Download Mystic App # 1) Download Mystic App
@ -25,6 +25,7 @@ else
[ -d ${CLEAN_INSTALL_DIR} ] && echo "ERROR: Directory [${CLEAN_INSTALL_DIR}] already exists!" && exit 1 [ -d ${CLEAN_INSTALL_DIR} ] && echo "ERROR: Directory [${CLEAN_INSTALL_DIR}] already exists!" && exit 1
unzip ${MYSTIC_SOURCE} -d ${CLEAN_INSTALL_DIR} unzip ${MYSTIC_SOURCE} -d ${CLEAN_INSTALL_DIR}
chmod +x ${CLEAN_INSTALL_DIR}/install
[ $? -gt 0 ] && echo "ERROR: Unzip failed?" && exit 1 [ $? -gt 0 ] && echo "ERROR: Unzip failed?" && exit 1
# 3) Run docker with -v mapping the unzip files to an arbitrary directory -v unzipfiles:/install # 3) Run docker with -v mapping the unzip files to an arbitrary directory -v unzipfiles:/install
@ -62,6 +63,9 @@ else
# Clean up data dir # Clean up data dir
find data -type f -exec chmod 644 {} \; find data -type f -exec chmod 644 {} \;
# Create our temp dirs
mkdir data/tempftn data/tempmis data/temputil
# Finished # Finished
mv data ../.. mv data ../..
cd ../.. cd ../..
@ -74,5 +78,5 @@ echo "Zipping up data dir..."
tar czf mystic/data.tar.gz data/ tar czf mystic/data.tar.gz data/
# That dir is now ready for the image # That dir is now ready for the image
tar czf mystic.tar.gz mystic tar czf ../mystic.tar.gz mystic
echo "OK mystic.tar.gz can be moved to your docker build" echo "OK mystic.tar.gz can be moved to your docker build"

70
init
View File

@ -2,6 +2,7 @@
set -e set -e
NAME="Mystic BBS" NAME="Mystic BBS"
VERSION="A43"
INIT=mis INIT=mis
function stop { function stop {
@ -14,7 +15,74 @@ export PATH=$PATH:/mystic
if [ "$1" == "start" ]; then if [ "$1" == "start" ]; then
# First time install - expand out our data directory # First time install - expand out our data directory
[ $(find data|wc -l) -le 1 ] && tar xzf data.tar.gz if [ $(find data|wc -l) -le 1 ]; then
echo "** First time install, deploying sample setup"
tar xzf data.tar.gz
echo ${VERSION} > .version
# We need to upgrade
else
OLD_VERSION=$(cat data/.version)
echo "** Upgrading [${OLD_VERSION}]"
case ${OLD_VERSION} in
A39)
echo "Processing data/default.txt"
set -x
[ ! -d data/upgrade/${VERSION}/${OLD_VERSION} ] && mkdir -p data/upgrade/${VERSION}/${OLD_VERSION}
cd data/upgrade/${VERSION}/${OLD_VERSION}
[ -d data ] && rm -rf data
tar xzf /mystic/data.tar.gz
cd /mystic/data
diff -u data/default.txt upgrade/${VERSION}/${OLD_VERSION}/data/data/default.txt > upgrade/${VERSION}/${OLD_VERSION}/default.txt.patch && echo $?
if [ -s upgrade/${VERSION}/${OLD_VERSION}/default.txt.patch ]; then
patch -p 0 < upgrade/${VERSION}/${OLD_VERSION}/default.txt.patch
echo "! Check upgrade/${VERSION}/${OLD_VERSION}/default.txt.patch for an strings that may have been overwritten..."
else
rm -f upgrade/${VERSION}/${OLD_VERSION}/default.txt.patch
fi
for i in msg_index.ini msg_index.ans msg_index_help.ans; do
cp upgrade/${VERSION}/${OLD_VERSION}/data/text/$i text/
done
cp upgrade/${VERSION}/${OLD_VERSION}/data/data/cfgroot4.ans data/
../upgrade
cd ../scripts
./mplc -all
cd ../data
rm -rf upgrade/${VERSION}/${OLD_VERSION}/data
echo A42 > .version
;;
A42)
set -x
[ ! -d data/upgrade/${VERSION}/${OLD_VERSION} ] && mkdir -p data/upgrade/${VERSION}/${OLD_VERSION}
cd data/upgrade/${VERSION}/${OLD_VERSION}
[ -d data ] && rm -rf data
tar xzf /mystic/data.tar.gz
cd /mystic/data
for i in text/userchat.ans text/userchat.ini; do
cp upgrade/${VERSION}/${OLD_VERSION}/data/$i ./$i
done
diff -ur text/ upgrade/${VERSION}/${OLD_VERSION}/data/text/ > upgrade/${VERSION}/${OLD_VERSION}/text.patch || true
rm -rf upgrade/${VERSION}/${OLD_VERSION}/data
echo A43 > .version
;;
A43) echo "Already up to date!" ;;
*) echo "!! Dont know how to upgrade" && exit 1
esac
fi
if [ -x /usr/sbin/zerotier-one -a -n "${ENABLE_ZT}" ]; then
echo "** Starting ZeroTier"
mkdir /dev/net && mknod /dev/net/tun -m 666 c 10 200
/usr/sbin/zerotier-one -d
fi
# OK, start # OK, start
exec ${INIT} server exec ${INIT} server

Binary file not shown.

Binary file not shown.

52
zt-gpg-key Normal file
View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: GPGTools - https://gpgtools.org
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
=JgAv
-----END PGP PUBLIC KEY BLOCK-----