From 5bfd1aef44b8a715669237b40a959e5995c6693c Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 13 Feb 2022 16:24:57 +0800 Subject: [PATCH] + docker files --- .github/workflows/docker.yml | 36 +++++++++++++++++++++++++++++++ docker/README.md | 1 + docker/development/Dockerfile | 30 ++++++++++++++++++++++++++ docker/mysql-8.0/Dockerfile | 21 ------------------ docker/mysql-8.0/conf/mysqld.conf | 11 ---------- docker/mysql-8.0/conf/yao.conf | 11 ---------- docker/mysql-8.0/conf/yao.env | 19 ---------------- docker/production/Dockerfile | 32 +++++++++++++++++++++++++++ docker/ubuntu.sh | 19 ---------------- docker/yao/Dockerfile | 21 ------------------ docker/yao/conf/yao.conf | 11 ---------- docker/yao/conf/yao.env | 7 ------ 12 files changed, 99 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/docker.yml create mode 100644 docker/README.md create mode 100644 docker/development/Dockerfile delete mode 100644 docker/mysql-8.0/Dockerfile delete mode 100644 docker/mysql-8.0/conf/mysqld.conf delete mode 100644 docker/mysql-8.0/conf/yao.conf delete mode 100644 docker/mysql-8.0/conf/yao.env create mode 100644 docker/production/Dockerfile delete mode 100644 docker/ubuntu.sh delete mode 100644 docker/yao/Dockerfile delete mode 100644 docker/yao/conf/yao.conf delete mode 100644 docker/yao/conf/yao.env diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 00000000..ab46d4b3 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,36 @@ +name: docker + +on: + push: + branches: [main] + paths: + - "docker/README.md" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: ./docker/development + build-args: | + VERSION=0.9.1 + ARCH=amd64 + push: true + tags: yaoapp/yao:0.9.1-amd64-dev diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 00000000..42a02c83 --- /dev/null +++ b/docker/README.md @@ -0,0 +1 @@ +# Version diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile new file mode 100644 index 00000000..531d13c3 --- /dev/null +++ b/docker/development/Dockerfile @@ -0,0 +1,30 @@ +# =========================================== +# Yao Development +# docker build \ +# --build-arg VERSION="${VERSION}" \ +# --build-arg ARCH="${ARCH}" \ +# -t yaoapp/yao-dev:${VERSION}-${ARCH} . +# +# Build: +# docker build --build-arg VERSION=0.9.1 --build-arg ARCH=amd64 -t yaoapp/yao:0.9.1-amd64-dev . +# docker build --build-arg VERSION=0.9.1 --build-arg ARCH=arm64 -t yaoapp/yao:0.9.1-arm64-dev . +# +# Tests: +# docker run --rm yaoapp/yao:0.9.1-amd64-dev yao version +# docker run -d -p 5099:5099 yaoapp/yao:0.9.1-amd64-dev +# +# =========================================== +FROM ubuntu:20.04 +ARG VERSION +ARG ARCH +RUN groupadd -r yao && useradd -r -g yao yao && \ + apt-get update && \ + apt-get install -y curl sudo procps net-tools +RUN curl -fsSL "https://release-sv.yaoapps.com/archives/yao-${VERSION}-linux-${ARCH}" > /usr/local/bin/yao && \ + chmod +x /usr/local/bin/yao && \ + mkdir -p /data/app + +VOLUME /data/app +WORKDIR /data/app +EXPOSE 5099 +CMD ["tail", "-f","/dev/null"] diff --git a/docker/mysql-8.0/Dockerfile b/docker/mysql-8.0/Dockerfile deleted file mode 100644 index 12c91bbc..00000000 --- a/docker/mysql-8.0/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# =========================================== -# Yao 0.9.11 + MySQL 8.0.27 -# docker build -t yaoapp/yao-mysql:0.9.11 . -# =========================================== -FROM mysql:8.0.27 -ENV MYSQL_ROOT_PASSWORD=123456 MYSQL_DATABASE=yao -RUN groupadd -r yao && useradd -r -g yao yao -RUN sed -i 's#http://deb.debian.org#http://mirrors.163.com#g' /etc/apt/sources.list -RUN apt-get update && apt-get install -y curl supervisor sudo procps net-tools -RUN mkdir -p /data/app && mkdir -p /data/app/db && mkdir -p /data/logs && chown -R yao:yao /data -RUN echo user=root >> /etc/supervisor/supervisord.conf -RUN curl -fsSL https://demo-crm.iqka.com/releases/0.9.11/install.sh | bash - -COPY conf/yao.conf /etc/supervisor/conf.d/yao.conf -# COPY conf/yao.env /data/app/.env -COPY conf/mysqld.conf /etc/supervisor/conf.d/mysqld.conf - -VOLUME /data/app -EXPOSE 3306 33060 5099 3321 -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["/usr/bin/supervisord", "-n"] diff --git a/docker/mysql-8.0/conf/mysqld.conf b/docker/mysql-8.0/conf/mysqld.conf deleted file mode 100644 index 8c8c32bf..00000000 --- a/docker/mysql-8.0/conf/mysqld.conf +++ /dev/null @@ -1,11 +0,0 @@ -[program:mysqld] -directory=/ -command=mysqld -process_name=mysqld -numprocs=1 -autostart=true -autorestart=true -user=mysql -group=mysql -redirect_stderr=true -stdout_logfile=/data/logs/mysqld-supervisor.log diff --git a/docker/mysql-8.0/conf/yao.conf b/docker/mysql-8.0/conf/yao.conf deleted file mode 100644 index 7f9abd04..00000000 --- a/docker/mysql-8.0/conf/yao.conf +++ /dev/null @@ -1,11 +0,0 @@ -[program:yao-server] -directory=/data/app -command=/usr/local/bin/yao start -process_name=yao-server -numprocs=1 -autostart=true -autorestart=true -user=yao -group=yao -redirect_stderr=true -stdout_logfile=/data/logs/yao-supervisor.log diff --git a/docker/mysql-8.0/conf/yao.env b/docker/mysql-8.0/conf/yao.env deleted file mode 100644 index bc6a6db2..00000000 --- a/docker/mysql-8.0/conf/yao.env +++ /dev/null @@ -1,19 +0,0 @@ -XIANG_MODE="debug" - -# 服务器配置 -XIANG_SERVICE_HOST=0.0.0.0 -XIANG_SERVICE_PORT=5099 -XIANG_SESSION_PORT=3321 - -# 数据库配置 -XIANG_DB_DEBUG=true -XIANG_DB_AESKEY="ZLX=T&f6refeCh-ro*r@" - -# 数据库 -XIANG_DB_DRIVER=mysql -XIANG_DB_PRIMARY="root:123456@tcp(127.0.0.1:3306)/yao?charset=utf8mb4&parseTime=True&loc=Local" -XIANG_DB_SECONDARY="root:123456@tcp(127.0.0.1:3306)/yao?charset=utf8mb4&parseTime=True&loc=Local" - -# JWT配置 -XIANG_JWT_DEBUG=true -XIANG_JWT_SECRET="bLp@bi!oqo-2U+hoTRUG" \ No newline at end of file diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile new file mode 100644 index 00000000..e6316d9f --- /dev/null +++ b/docker/production/Dockerfile @@ -0,0 +1,32 @@ +# =========================================== +# Yao Production +# docker build \ +# --build-arg VERSION="${VERSION}" \ +# --build-arg ARCH="${ARCH}" \ +# -t yaoapp/yao-dev:${VERSION}-${ARCH} . +# +# Build: +# docker build --build-arg VERSION=0.9.1 --build-arg ARCH=amd64 -t yaoapp/yao:0.9.1-amd64 . +# docker build --build-arg VERSION=0.9.1 --build-arg ARCH=arm64 -t yaoapp/yao:0.9.1-arm64 . +# +# Tests: +# docker run --rm yaoapp/yao:0.9.1-amd64 yao version +# docker run -d -p 5099:5099 yaoapp/yao:0.9.1-amd64 +# +# =========================================== +FROM alpine:latest +ARG VERSION +ARG ARCH +RUN apk --no-cache add curl +RUN curl -fsSL "https://release-sv.yaoapps.com/archives/yao-${VERSION}-linux-${ARCH}" > /usr/local/bin/yao && \ + chmod +x /usr/local/bin/yao +RUN mkdir -p /data/app && \ + cd /data/app && /usr/local/bin/yao init && \ + cd /data/app && /usr/local/bin/yao migrate && \ + cd /data/app && /usr/local/bin/yao run flows.setmenu && \ + sed -i 's/development/production/g' /data/app/.env + +VOLUME /data/app +WORKDIR /data/app +EXPOSE 5099 +CMD ["/usr/local/bin/yao", "start"] diff --git a/docker/ubuntu.sh b/docker/ubuntu.sh deleted file mode 100644 index 49f5b9fc..00000000 --- a/docker/ubuntu.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# version cat /etc/issue -apt-get update -apt-get -y install curl vim git iputils-ping build-essential gcc-arm-linux-gnueabi - -# Install Go -cd /usr/local && tar xvfz /code/xiang/docker/go1.17.3.linux-amd64.tar.gz -ln -s /usr/local/go/bin/go /usr/local/bin/go -ln -s /usr/local/go/bin/gofmt /usr/local/bin/gofmt - -# Install Node - -export GO111MODULE="on" -export GOPATH="/root/go" -export GOPROXY="https://goproxy.cn" -export http_proxy="socks5://192.168.199.178:1080" -export https_proxy="socks5://192.168.199.178:1080" -export NODE_OPTIONS="--max-old-space-size=5120" -export PATH=~/go/bin:$PATH \ No newline at end of file diff --git a/docker/yao/Dockerfile b/docker/yao/Dockerfile deleted file mode 100644 index 159b1896..00000000 --- a/docker/yao/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -# =========================================== -# Yao 0.9.0+ MySQL 8.0.27 -# docker build -t yaoapp/yao:0.9.0 . -# =========================================== -FROM debian:buster-slim -RUN groupadd -r yao && useradd -r -g yao yao -RUN sed -i 's#http://deb.debian.org#http://mirrors.163.com#g' /etc/apt/sources.list && \ - apt-get update && apt-get install -y curl supervisor sudo procps net-tools && \ - mkdir -p /data/app && \ - # mkdir -p /data/logs && \ - # mkdir -p /data/app/db && \ - # chown -R yao:yao /data && \ - # echo user=root >> /etc/supervisor/supervisord.conf && \ - curl -fsSL https://release.yaoapps.com/install.sh | bash - -# COPY conf/yao.conf /etc/supervisor/conf.d/yao.conf -# COPY conf/yao.env /data/app/.env -VOLUME /data/app -EXPOSE 5099 3321 -ENTRYPOINT ["tail"] -CMD ["-f","/dev/null"] diff --git a/docker/yao/conf/yao.conf b/docker/yao/conf/yao.conf deleted file mode 100644 index 7f9abd04..00000000 --- a/docker/yao/conf/yao.conf +++ /dev/null @@ -1,11 +0,0 @@ -[program:yao-server] -directory=/data/app -command=/usr/local/bin/yao start -process_name=yao-server -numprocs=1 -autostart=true -autorestart=true -user=yao -group=yao -redirect_stderr=true -stdout_logfile=/data/logs/yao-supervisor.log diff --git a/docker/yao/conf/yao.env b/docker/yao/conf/yao.env deleted file mode 100644 index edebd0f2..00000000 --- a/docker/yao/conf/yao.env +++ /dev/null @@ -1,7 +0,0 @@ -YAO_ENV=production -YAO_JWT_SECRET="qffgameana6VLuw4LZ?x" -YAO_HOST=0.0.0.0 -YAO_PORT=5099 -YAO_LOG="/data/app/logs/application.log" -YAO_DB_DRIVER=sqlite3 -YAO_DB_PRIMARY="/data/app/db/yao.db" \ No newline at end of file