+ docker files

This commit is contained in:
Max 2022-02-13 16:24:57 +08:00
parent 5a76a2b110
commit 5bfd1aef44
12 changed files with 99 additions and 120 deletions

36
.github/workflows/docker.yml vendored Normal file
View file

@ -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

1
docker/README.md Normal file
View file

@ -0,0 +1 @@
# Version

View file

@ -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"]

View file

@ -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"]

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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"]

View file

@ -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

View file

@ -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"]

View file

@ -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

View file

@ -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"