Pārlūkot izejas kodu

:wrench: add mint docker

Jeremy Zheng 1 gadu atpakaļ
vecāks
revīzija
30487c32e1

+ 3 - 3
README.md

@@ -7,11 +7,11 @@
 ## Development
 
 ```bash
-$ sudo apt install -y git crun podman buildah fuse-overlayfs
-$ git clone https://github.com/iapt-platform/mint.git ~/workspace/iapt-platform/mint
-$ cd ~/workspace/iapt-platform/mint/
+$ sudo apt install -y git screen crun podman buildah fuse-overlayfs 
 # Load the mint-spring image
 $ podman load -i tmp/mint-spring-TIMESTAMP.tar.xz
+$ git clone https://github.com/iapt-platform/mint.git ~/workspace/iapt-platform/mint
+$ cd ~/workspace/iapt-platform/mint/
 # Start postgresql/redis/rabbitmq... services
 $ ./docker/spring/start.sh services
 # Start a backend server

+ 0 - 27
docker/laravel/Dockerfile

@@ -1,27 +0,0 @@
-FROM ubuntu:latest
-LABEL maintainer="Jeremy Zheng"
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN apt update
-RUN apt -y upgrade
-
-RUN apt -y install build-essential
-
-RUN apt -y autoremove
-RUN apt -y clean
-
-RUN apt -y install locales locales-all tzdata build-essential
-
-RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
-RUN locale-gen
-RUN update-locale LANG=en_US.UTF-8
-RUN update-alternatives --set editor /usr/bin/vim.basic
-
-
-RUN echo "$(date -u +%4Y%m%d%H%M%S)" | tee /VERSION
-
-VOLUME /workspace
-WORKDIR /workspace
-
-CMD ["/bin/bash", "-l"]

+ 0 - 10
docker/laravel/start.sh

@@ -1,10 +0,0 @@
-#!/bin/bash
-
-export CODE="mint-laravel"
-export NAME="$CODE-$USER"
-
-if podman container exists $NAME; then
-    podman start -i -a $NAME
-else
-    podman run --name $NAME -it --events-backend=file --hostname=mint --network host -v $PWD:/workspace:z $CODE
-fi

+ 42 - 0
docker/mint/Dockerfile

@@ -0,0 +1,42 @@
+FROM ubuntu:latest
+LABEL maintainer="Jeremy Zheng"
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt update
+RUN apt -y upgrade
+RUN apt -y install git vim locales locales-all tzdata build-essential wget curl \
+    composer php-cli php-fpm php-xml php-imap php-intl php-mbstring php-bcmath php-bz2 php-zip php-curl php-gd php-imagick php-pgsql php-mysql php-sqlite3 php-redis php-amqp \
+    fonts-dejavu-extra fonts-opensymbol fonts-lxgw-wenkai fonts-smiley-sans \
+    fonts-noto-extra fonts-noto-cjk-extra fonts-noto-color-emoji \
+    fonts-arphic-ukai fonts-arphic-uming \
+    fonts-wqy-microhei fonts-wqy-zenhei \
+    fonts-cns11643-kai fonts-cns11643-sung \
+    fonts-moe-standard-kai fonts-moe-standard-song \
+    fonts-ipaexfont fonts-ipafont fonts-konatu fonts-ipafont-nonfree-jisx0208 fonts-ipafont-nonfree-uigothic \
+    fonts-mikachan \
+    fonts-tibetan-machine fonts-ddc-uchen fonts-monlam fonts-sambhota-tsugring fonts-sambhota-yigchung \
+    imagemagick ffmpeg graphviz pandoc texlive-full \
+    libssl-dev libpq-dev libmysqlclient-dev
+RUN apt -y autoremove
+RUN apt -y clean
+
+RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
+RUN locale-gen
+RUN update-locale LANG=en_US.UTF-8
+RUN update-alternatives --set editor /usr/bin/vim.basic
+
+# https://github.com/nvm-sh/nvm
+ENV NVM_VERSION "v0.40.1"
+RUN git clone -b ${NVM_VERSION} https://github.com/nvm-sh/nvm.git $HOME/.nvm
+RUN echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bashrc
+RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $HOME/.bashrc
+RUN echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"' >> $HOME/.bashrc
+RUN bash -i -c "nvm install --lts"
+
+RUN echo "$(date -u +%4Y%m%d%H%M%S)" | tee /VERSION
+
+VOLUME /workspace
+WORKDIR /workspace
+
+CMD ["/bin/bash", "-l"]

+ 1 - 1
docker/laravel/build.sh → docker/mint/build.sh

@@ -3,7 +3,7 @@
 set -e
 
 export VERSION=$(date "+%4Y%m%d%H%M%S")
-export CODE="mint-laravel"
+export CODE="mint-react"
 
 podman pull ubuntu:latest
 podman build -t $CODE .

+ 6 - 0
docker/mint/start.sh

@@ -0,0 +1,6 @@
+#!/bin/bash
+
+export CODE="mint-react"
+export NAME="$CODE-$USER"
+
+podman run --rm -it --events-backend=file --hostname=mint --network host -v $PWD:/workspace:z $CODE

+ 1 - 0
docker/spring/Dockerfile

@@ -115,5 +115,6 @@ RUN echo "$(date -u +%4Y%m%d%H%M%S)" | tee /VERSION
 
 VOLUME /workspace
 WORKDIR /workspace
+EXPOSE 5432/tcp 6379/tcp 6371/tcp 6372/tcp 6373/tcp 6374/tcp 6375/tcp 6376/tcp 5672/tcp 15672/tcp 9200/tcp 9000/tcp 9001/tcp 10001/tcp
 
 CMD ["/bin/zsh", "-l"]

+ 2 - 2
docker/spring/build.sh

@@ -7,8 +7,8 @@ export CODE="mint-spring"
 
 podman pull ubuntu:latest
 podman build -t $CODE .
-podman save --format=oci-archive -o $CODE-$VERSION.tar $CODE
-md5sum $CODE-$VERSION.tar >$CODE-$VERSION.md5
+# podman save --format=oci-archive -o $CODE-$VERSION.tar $CODE
+# md5sum $CODE-$VERSION.tar >$CODE-$VERSION.md5
 
 echo "done($CODE-$VERSION.tar)."
 

+ 0 - 5
docker/spring/etc/supervisor/conf.d/mysql.conf

@@ -1,5 +0,0 @@
-[program:mysql]
-command=/usr/bin/mariadbd-safe --datadir='/var/lib/mysql' --user=mysql
-autostart=true
-autorestart=true
-user=root

+ 21 - 0
docker/spring/forward.sh

@@ -0,0 +1,21 @@
+#!/bin/bash
+
+ssh -p 22 -L 3000:localhost:3000 $1
+
+export USAGE="$0 SSH_USER SSH_HOST SSH_PORT frontend|backend"
+
+if [ "$#" -ne 4 ]; then
+    echo $USAGE
+    exit 1
+fi
+
+if [[ "$4" == "backend" ]]
+then
+    ssh -p $3 -L 8000:localhost:8000 $1@$2
+elif [[ "$1" == "frontend" ]]
+then
+    ssh -p $3 -L 3000:localhost:3000 $1@$2
+else
+    echo $USAGE
+    exit 1
+fi

+ 27 - 3
docker/spring/start.sh

@@ -3,8 +3,32 @@
 export CODE="mint-spring"
 export NAME="$CODE-$USER"
 
-if podman container exists $NAME; then
-    podman start -i -a $NAME
+export USAGE="USAGE: $0 services|frontend|backend|shell"
+export PODMAN="podman run --rm -it --events-backend=file --hostname=mint --network host -v $PWD:/workspace:z $CODE"
+
+if [ "$#" -ne 1 ]; then
+    echo $USAGE
+    exit 1
+fi
+
+if [[ "$1" == "services" ]]
+then
+    echo "start mint services"
+elif [[ "$1" == "backend" ]]
+then
+    echo "start mint frontend services"
+elif [[ "$1" == "frontend" ]]
+then
+    $PODMAN /usr/bin/zsh -c 'source $HOME/.zshrc && cd /workspace/dashboard-v4/dashboard && yarn start'
+elif [[ "$1" == "shell" ]]
+then
+    $PODMAN /usr/bin/zsh -l
 else
-    podman run --name $NAME -it --events-backend=file --hostname=mint --network host -v $PWD:/workspace:z $CODE
+    echo $USAGE
 fi
+
+# if podman container exists $NAME; then
+#     podman start -i -a $NAME
+# else
+#     podman run --name $NAME -it --events-backend=file --hostname=mint --network host -v $PWD:/workspace:z $CODE
+# fi