owen-carter 6 anni fa
parent
commit
c5bef5f37b
3 ha cambiato i file con 166 aggiunte e 6 eliminazioni
  1. 92 0
      cibot
  2. 63 0
      docker-compose.pro.yml
  3. 11 6
      fe/Dockerfile

+ 92 - 0
cibot

@@ -0,0 +1,92 @@
+#!/usr/bin/env bash
+
+#
+# 发布镜像脚本
+#
+
+version='release-v1.0.0'
+
+# cwd
+cwd=$(pwd)
+
+#
+# Set Colors
+#
+bold=$(tput bold)
+underline=$(tput sgr 0 1)
+reset=$(tput sgr0)
+
+red=$(tput setaf 1)
+green=$(tput setaf 76)
+white=$(tput setaf 7)
+tan=$(tput setaf 202)
+blue=$(tput setaf 25)
+
+#
+# Headers and Logging
+#
+info() {
+    printf "${white}➜ %s${reset}\n" "$@"
+}
+success() {
+    printf "${green}✔ %s${reset}\n" "$@"
+}
+error() {
+    printf "${red}✖ %s${reset}\n" "$@"
+}
+warn() {
+    printf "${tan}➜ %s${reset}\n" "$@"
+}
+
+goBack(){
+  cd ${cwd}
+}
+
+buildUi(){
+ goBack
+ cd fe
+ walleUi="walle-ui:${version}"
+ info "开始构建:${walleUi}"
+ docker build --tag walle/${walleUi} .
+ success "开始上传:${walleUi}"
+ docker push walle/${walleUi}
+ success "上传成功:${walleUi}"
+}
+
+buildApiServer(){
+ goBack
+ walleApi="walle-api:${version}"
+ info "开始构建:${walleApi}"
+ docker build --tag walle/${walleApi} .
+ success "开始上传:${walleApi}"
+ docker push walle/${walleApi}
+ success "上传成功:${walleApi}"
+}
+
+buildGateway(){
+ goBack
+ cd gateway
+ walleGateway="walle-gateway:${version}"
+ info "开始构建:${walleGateway}"
+ docker build --tag "walle/${walleGateway}" .
+ success "开始上传:${walleGateway}"
+ docker push walle/${walleGateway}
+ success "上传成功:${walleGateway}"
+}
+
+buildImage(){
+ buildUi
+ buildApiServer
+ buildGateway
+}
+
+
+bootstrap(){
+ info "开始构建"
+ h1 "请输入仓库密码:"
+ docker login --username=walle@qq.com
+ buildImage
+ success '构建成功'
+}
+
+bootstrap

+ 63 - 0
docker-compose.pro.yml

@@ -0,0 +1,63 @@
+# 用户使用,最终镜像
+
+version: "3.7"
+
+services:
+
+  db:
+    image: mysql
+    ports:
+      - 0.0.0.0:3306:3306
+    expose:
+      - 3306
+    command: --default-authentication-plugin=mysql_native_password
+    environment:
+      MYSQL_ROOT_PASSWORD: walle
+      MYSQL_DATABASE: walle
+    volumes:
+      - /data/walle/mysql:/var/lib/mysql
+    networks:
+      - walle-net
+    restart: always
+
+  adminer:
+    image: adminer
+    ports:
+      - 8888:8080
+    networks:
+      - walle-net
+    restart: always
+
+
+  ui:
+    image: walle/walle-ui:latest
+    expose:
+      - 8000
+    networks:
+      - walle-net
+    restart: always
+
+  web:
+    image: walle/walle-api:latest
+    depends_on:
+      - db
+    expose:
+      - 5000
+    environment:
+      - WALLE_SECRET="guess me out"
+    networks:
+      - walle-net
+    restart: always
+
+  gateway:
+    image: walle/walle-gateway:latest
+    ports:
+      - 0.0.0.0:80:80
+    volumes:
+      - ./fe/:/data/web/:ro
+    networks:
+      walle-net:
+    restart: always
+
+networks:
+  walle-net: ~

+ 11 - 6
fe/Dockerfile

@@ -1,3 +1,4 @@
+# 看不懂的学习一下docker的多阶段构建
 # STEP 1: Build
 FROM node:9 as builder
 
@@ -7,6 +8,7 @@ COPY package.json  ./
 RUN npm config set registry https://registry.npm.taobao.org  && npm i
 COPY . .
 
+# todo 谁来把这里调试通过一下
 RUN npm run build
 
 # STEP 2: Setup
@@ -15,11 +17,14 @@ FROM nginx
 ENV NGINX_PORT 8000
 
 RUN rm -rf /usr/share/nginx/html/*
-COPY --from=builder /usr/src/app/avatar /usr/share/nginx/html
-COPY --from=builder /usr/src/app/public /usr/share/nginx/html
-COPY --from=builder /usr/src/app/static /usr/share/nginx/html
-COPY --from=builder /usr/src/app/favicon.ico /usr/share/nginx/html
-COPY --from=builder /usr/src/app/index.html /usr/share/nginx/html
-COPY --from=builder /usr/src/app/socket.io.min.js /usr/share/nginx/html
+#COPY --from=builder /usr/src/app/avatar /usr/share/nginx/html
+#COPY --from=builder /usr/src/app/public /usr/share/nginx/html
+#COPY --from=builder /usr/src/app/static /usr/share/nginx/html
+#COPY --from=builder /usr/src/app/favicon.ico /usr/share/nginx/html
+#COPY --from=builder /usr/src/app/index.html /usr/share/nginx/html
+#COPY --from=builder /usr/src/app/socket.io.min.js /usr/share/nginx/html
+
+# todo 上边到逻辑走不通,先直接复制目录
+COPY . .
 
 CMD [ "nginx", "-g", "daemon off;"]