From 97167e332bbfc0fc42842ba9a501c2a813cb5462 Mon Sep 17 00:00:00 2001 From: SliverHorn Date: Thu, 10 Jun 2021 22:05:14 +0800 Subject: [PATCH] =?UTF-8?q?update:=20docker-compose=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 119 ------------------ Dockerfile | 41 ------ docker-compose.yaml | 8 +- docker/docker-start.sh | 4 - docker/etc/nginx/nginx.conf.tpl | 56 --------- dockerfile_server | 21 ---- server/Dockerfile | 9 +- .../.docker-compose}/nginx/conf.d/my.conf | 0 web/.dockerignore | 1 + dockerfile_web => web/Dockerfile | 3 +- 10 files changed, 10 insertions(+), 252 deletions(-) delete mode 100644 .dockerignore delete mode 100644 Dockerfile delete mode 100644 docker/docker-start.sh delete mode 100644 docker/etc/nginx/nginx.conf.tpl delete mode 100644 dockerfile_server rename {.docker-compose => web/.docker-compose}/nginx/conf.d/my.conf (100%) create mode 100644 web/.dockerignore rename dockerfile_web => web/Dockerfile (90%) diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 4e352a51..00000000 --- a/.dockerignore +++ /dev/null @@ -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 diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 5a055230..00000000 --- a/Dockerfile +++ /dev/null @@ -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"] diff --git a/docker-compose.yaml b/docker-compose.yaml index d997d799..4f3a204d 100644 --- a/docker-compose.yaml +++ b/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: diff --git a/docker/docker-start.sh b/docker/docker-start.sh deleted file mode 100644 index df7e2e76..00000000 --- a/docker/docker-start.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -envsubst '$API_SERVER' < /etc/nginx/nginx.conf.tpl > /etc/nginx/nginx.conf -env nginx -./gvadmin diff --git a/docker/etc/nginx/nginx.conf.tpl b/docker/etc/nginx/nginx.conf.tpl deleted file mode 100644 index c96973cb..00000000 --- a/docker/etc/nginx/nginx.conf.tpl +++ /dev/null @@ -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} ; - } - -} - -} diff --git a/dockerfile_server b/dockerfile_server deleted file mode 100644 index 7c6479c8..00000000 --- a/dockerfile_server +++ /dev/null @@ -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@sliver_horn@qq.com" - -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 diff --git a/server/Dockerfile b/server/Dockerfile index 75e85f1a..57ccc63f 100644 --- a/server/Dockerfile +++ b/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@sliver_horn@qq.com" 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 diff --git a/.docker-compose/nginx/conf.d/my.conf b/web/.docker-compose/nginx/conf.d/my.conf similarity index 100% rename from .docker-compose/nginx/conf.d/my.conf rename to web/.docker-compose/nginx/conf.d/my.conf diff --git a/web/.dockerignore b/web/.dockerignore new file mode 100644 index 00000000..40b878db --- /dev/null +++ b/web/.dockerignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/dockerfile_web b/web/Dockerfile similarity index 90% rename from dockerfile_web rename to web/Dockerfile index 2f0d26a1..d616262d 100644 --- a/dockerfile_web +++ b/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