Kaynağa Gözat

docker-compose 优化

docker-compose 优化
奇淼(piexlmax 3 yıl önce
ebeveyn
işleme
7f3252cade

+ 0 - 119
.dockerignore

@@ -1,119 +0,0 @@
-# Created by .ignore support plugin (hsz.mobi)
-### Node template
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-lerna-debug.log*
-
-# Diagnostic reports (https://nodejs.org/api/report.html)
-report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-*.lcov
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# Snowpack dependency directory (https://snowpack.dev/)
-web_modules/
-
-# TypeScript cache
-*.tsbuildinfo
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Microbundle cache
-.rpt2_cache/
-.rts2_cache_cjs/
-.rts2_cache_es/
-.rts2_cache_umd/
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-.env.test
-
-# parcel-bundler cache (https://parceljs.org/)
-.cache
-.parcel-cache
-
-# Next.js build output
-.next
-
-# Nuxt.js build / generate output
-.nuxt
-dist
-
-# Gatsby files
-.cache/
-# Comment in the public line in if your project uses Gatsby and not Next.js
-# https://nextjs.org/blog/next-9-1#public-directory-support
-# public
-
-# vuepress build output
-.vuepress/dist
-
-# Serverless directories
-.serverless/
-
-# FuseBox cache
-.fusebox/
-
-# DynamoDB Local files
-.dynamodb/
-
-# TernJS port file
-.tern-port
-
-# Stores VSCode versions used for testing VSCode extensions
-.vscode-test
-
-# yarn v2
-
-.yarn/cache
-.yarn/unplugged
-.yarn/build-state.yml
-.pnp.*
-
-**/node_modules

+ 0 - 41
Dockerfile

@@ -1,41 +0,0 @@
-FROM golang:alpine as builder
-RUN  apk add --update --no-cache yarn make g++
-RUN yarn global add cross-env node-sass
-
-ENV GOPROXY=https://goproxy.cn,https://goproxy.io,direct \
-    GO111MODULE=on \
-    CGO_ENABLED=1
-WORKDIR /go/src/gin-vue-admin
-RUN go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
-COPY server/ ./
-RUN go env && go list && go build -v -a -ldflags "-extldflags \"-static\" " -o gvadmin .
-
-WORKDIR /web
-COPY web/ ./
-RUN yarn install && yarn run build
-
-
-FROM nginx:alpine
-LABEL MAINTAINER="rikugun"
-
-RUN apk add --no-cache  gettext tzdata   && \
-    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
-    echo "Asia/Shanghai" >  /etc/timezone && \
-    date && \
-    apk del tzdata
-
-COPY docker/etc/nginx/nginx.conf.tpl /etc/nginx/nginx.conf.tpl
-WORKDIR /app
-#copy web
-COPY --from=builder /web/dist/ /var/www/
-#copy go app
-COPY --from=builder /go/src/gin-vue-admin/gvadmin ./
-COPY --from=builder /go/src/gin-vue-admin/db.db ./
-COPY --from=builder /go/src/gin-vue-admin/config.yaml ./
-COPY --from=builder /go/src/gin-vue-admin/resource ./resource
-COPY docker/docker-start.sh ./
-
-ENV API_SERVER="http://localhost:8888/"
-EXPOSE 80
-
-ENTRYPOINT ["./docker-start.sh"]

+ 4 - 4
docker-compose.yaml

@@ -10,8 +10,8 @@ networks:
 services:
   web:
     build:
-      context: ./
-      dockerfile: ./dockerfile_web
+      context: ./web
+      dockerfile: ./Dockerfile
     container_name: gva-web
     restart: always
     ports:
@@ -25,8 +25,8 @@ services:
 
   server:
     build:
-      context: ./
-      dockerfile: ./dockerfile_server
+      context: ./server
+      dockerfile: ./Dockerfile
     container_name: gva-server
     restart: always
     ports:

+ 0 - 4
docker/docker-start.sh

@@ -1,4 +0,0 @@
-#!/bin/sh
-envsubst '$API_SERVER' < /etc/nginx/nginx.conf.tpl > /etc/nginx/nginx.conf
-env nginx
-./gvadmin

+ 0 - 56
docker/etc/nginx/nginx.conf.tpl

@@ -1,56 +0,0 @@
-daemon on;
-worker_processes  50;
-#error_log /dev/stdout warn;
-error_log  /var/log/nginx/error.log error;
-
-
-events {
-    worker_connections 1024;
-}
-
-
-http {
-    include       mime.types;
-    default_type  application/octet-stream;
-    # See http://licson.net/post/optimizing-nginx-for-large-file-delivery/ for more detail
-        # This optimizes the server for HLS fragment delivery
-    sendfile off;
-    #tcp_nopush on;
-    keepalive_timeout  65;
-    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
-                      '$status $body_bytes_sent "$http_referer" '
-                      '"$http_user_agent" "$http_x_forwarded_for"';
-    #access_log /dev/stdout combined;
-
-#     ssl_ciphers         HIGH:!aNULL:!MD5;
-#     ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
-#     ssl_session_cache   shared:SSL:10m;
-#     ssl_session_timeout 10m;
-
-server {
-        listen 80;
-
-        # Uncomment these lines to enable SSL.
-        # Update the ssl paths with your own certificate and private key.
-        # listen 443 ssl;
-        # ssl_certificate     /opt/certs/example.com.crt;
-        # ssl_certificate_key /opt/certs/example.com.key;
-        location / {
-          root /var/www;
-          try_files $uri $uri/ /index.html;
-          index  index.html;
-        }
-
-        location /v1/ {
-          proxy_set_header X-Forwarded-Proto $scheme;
-          proxy_set_header X-Forwarded-Port $server_port;
-          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-          proxy_set_header Upgrade $http_upgrade;
-          proxy_set_header Connection "upgrade";
-          proxy_set_header  Host  $host;
-          proxy_pass ${API_SERVER} ;
-        }
-
-}
-
-}

+ 0 - 21
dockerfile_server

@@ -1,21 +0,0 @@
-FROM golang:alpine
-
-ENV GO111MODULE=on
-ENV GOPROXY=https://goproxy.io,direct
-WORKDIR /go/src/gin-vue-admin
-COPY server/ ./
-
-RUN go env && go mod tidy && go build -o server .
-
-FROM alpine:latest
-LABEL MAINTAINER="SliverHorn@[email protected]"
-
-WORKDIR /go/src/gin-vue-admin
-
-COPY --from=0 /go/src/gin-vue-admin/server ./
-COPY --from=0 /go/src/gin-vue-admin/config.docker.yaml ./
-COPY --from=0 /go/src/gin-vue-admin/resource ./resource
-
-EXPOSE 8888
-
-ENTRYPOINT ./server -c config.docker.yaml

+ 4 - 5
server/Dockerfile

@@ -2,19 +2,18 @@ FROM golang:alpine
 
 ENV GO111MODULE=on
 ENV GOPROXY=https://goproxy.io,direct
-
 WORKDIR /go/src/gin-vue-admin
 COPY . .
+
 RUN go env && go build -o server .
 
 FROM alpine:latest
 LABEL MAINTAINER="SliverHorn@[email protected]"
 
 WORKDIR /go/src/gin-vue-admin
-COPY --from=0 /go/src/gin-vue-admin/server ./
-COPY --from=0 /go/src/gin-vue-admin/config.yaml ./
-COPY --from=0 /go/src/gin-vue-admin/resource ./resource
+
+COPY --from=0 /go/src/gin-vue-admin ./
 
 EXPOSE 8888
 
-ENTRYPOINT ./server
+ENTRYPOINT ./server -c config.docker.yaml

+ 0 - 0
.docker-compose/nginx/conf.d/my.conf → web/.docker-compose/nginx/conf.d/my.conf


+ 1 - 0
web/.dockerignore

@@ -0,0 +1 @@
+node_modules/

+ 1 - 2
dockerfile_web → web/Dockerfile

@@ -1,7 +1,7 @@
 FROM node:12.16.1
 
 WORKDIR /gva_web/
-COPY web/ .
+COPY . .
 
 RUN npm install -g cnpm --registry=https://registry.npm.taobao.org
 RUN cnpm install || npm install
@@ -15,4 +15,3 @@ COPY --from=0 /gva_web/dist /usr/share/nginx/html
 RUN cat /etc/nginx/nginx.conf
 RUN cat /etc/nginx/conf.d/my.conf
 RUN ls -al /usr/share/nginx/html
-CMD ls -al /usr/share/nginx/html