mirror of
				https://github.com/soybeanjs/soybean-admin.git
				synced 2025-11-04 15:53:43 +08:00 
			
		
		
		
	ci: add docker build
This commit is contained in:
		
							
								
								
									
										12
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
ImageTag ?=v0.9.6
 | 
			
		||||
SoybeanImg ?= soybean/soybean:$(ImageTag)
 | 
			
		||||
 | 
			
		||||
VERSION=$(shell git rev-parse --short HEAD)
 | 
			
		||||
 | 
			
		||||
soybean: soybean-build soybean-push
 | 
			
		||||
 | 
			
		||||
soybean-build:
 | 
			
		||||
	docker build --build-arg version=$(VERSION) -t ${SoybeanImg} -f build/docker/Dockerfile .
 | 
			
		||||
 | 
			
		||||
soybean-push:
 | 
			
		||||
	docker push ${SoybeanImg}
 | 
			
		||||
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							@@ -115,6 +115,18 @@ pnpm dev
 | 
			
		||||
pnpm build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Docker 部署
 | 
			
		||||
 | 
			
		||||
- Docker 部署 Soybean
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
docker run --name soybean -p 80:80 -d soybean/soybean:v0.9.6
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
- 访问 Soybean
 | 
			
		||||
 | 
			
		||||
打开本地浏览器访问`http://localhost`
 | 
			
		||||
 | 
			
		||||
## 如何贡献
 | 
			
		||||
 | 
			
		||||
非常欢迎您的加入 或者提交一个 Pull Request。
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								build/docker/.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								build/docker/.dockerignore
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
node_modules
 | 
			
		||||
.DS_Store
 | 
			
		||||
dist
 | 
			
		||||
.npmrc
 | 
			
		||||
.cache
 | 
			
		||||
 | 
			
		||||
tests/server/static
 | 
			
		||||
tests/server/static/upload
 | 
			
		||||
 | 
			
		||||
.local
 | 
			
		||||
# local env files
 | 
			
		||||
.env.local
 | 
			
		||||
.env.*.local
 | 
			
		||||
.eslintcache
 | 
			
		||||
 | 
			
		||||
# Log files
 | 
			
		||||
npm-debug.log*
 | 
			
		||||
yarn-debug.log*
 | 
			
		||||
yarn-error.log*
 | 
			
		||||
pnpm-debug.log*
 | 
			
		||||
 | 
			
		||||
# Editor directories and files
 | 
			
		||||
.idea
 | 
			
		||||
# .vscode
 | 
			
		||||
*.suo
 | 
			
		||||
*.ntvs*
 | 
			
		||||
*.njsproj
 | 
			
		||||
*.sln
 | 
			
		||||
*.sw?
 | 
			
		||||
yarn.lock
 | 
			
		||||
pnpm-lock.yaml
 | 
			
		||||
/vite-profile.cpuprofile
 | 
			
		||||
							
								
								
									
										24
									
								
								build/docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								build/docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
FROM node:16.17.0 as builder
 | 
			
		||||
 | 
			
		||||
ENV WORKDIR=/soybean
 | 
			
		||||
 | 
			
		||||
WORKDIR $WORKDIR
 | 
			
		||||
 | 
			
		||||
COPY ./ $WORKDIR/
 | 
			
		||||
 | 
			
		||||
ARG version
 | 
			
		||||
ENV COMMITID=$version
 | 
			
		||||
 | 
			
		||||
RUN npm i -g pnpm
 | 
			
		||||
 | 
			
		||||
RUN pnpm install
 | 
			
		||||
RUN pnpm build
 | 
			
		||||
 | 
			
		||||
FROM nginx:alpine as prod
 | 
			
		||||
 | 
			
		||||
RUN mkdir /soybean
 | 
			
		||||
 | 
			
		||||
COPY --from=builder /soybean/dist /soybean
 | 
			
		||||
COPY --from=builder /soybean/build/docker/nginx.conf /etc/nginx/nginx.conf
 | 
			
		||||
 | 
			
		||||
EXPOSE 80
 | 
			
		||||
							
								
								
									
										54
									
								
								build/docker/nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								build/docker/nginx.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
user  nginx;
 | 
			
		||||
worker_processes  1;
 | 
			
		||||
error_log  /var/log/nginx/error.log warn;
 | 
			
		||||
pid        /var/run/nginx.pid;
 | 
			
		||||
 | 
			
		||||
events {
 | 
			
		||||
  worker_connections  1024;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
http {
 | 
			
		||||
  include       /etc/nginx/mime.types;
 | 
			
		||||
  default_type  application/octet-stream;
 | 
			
		||||
  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  /var/log/nginx/access.log  main;
 | 
			
		||||
  sendfile        on;
 | 
			
		||||
  keepalive_timeout  65;
 | 
			
		||||
 | 
			
		||||
  server {
 | 
			
		||||
    listen       80;
 | 
			
		||||
    server_name  localhost;
 | 
			
		||||
 | 
			
		||||
    location / {
 | 
			
		||||
      # 不缓存html,防止程序更新后缓存继续生效
 | 
			
		||||
      if ($request_filename ~* .*\.(?:htm|html)$) {
 | 
			
		||||
        add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
 | 
			
		||||
        access_log on;
 | 
			
		||||
      }
 | 
			
		||||
      root   /soybean/;
 | 
			
		||||
      index  index.html index.htm;
 | 
			
		||||
      try_files $uri $uri/ /index.html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # location /soybean/soybean-webserver/v1 {
 | 
			
		||||
    #     proxy_set_header Host $host;
 | 
			
		||||
    #     proxy_set_header X-Real-IP $remote_addr;
 | 
			
		||||
    #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
			
		||||
    #     proxy_set_header REMOTE-HOST $remote_addr;
 | 
			
		||||
 | 
			
		||||
    #     # 后台接口地址
 | 
			
		||||
    #     proxy_pass http://192.168.1.99:30597/v1;
 | 
			
		||||
    #     proxy_redirect default;
 | 
			
		||||
    #     add_header Access-Control-Allow-Origin *;
 | 
			
		||||
    #     add_header Access-Control-Allow-Headers X-Requested-With;
 | 
			
		||||
    #     add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
 | 
			
		||||
    # }
 | 
			
		||||
 | 
			
		||||
    error_page   500 502 503 504  /50x.html;
 | 
			
		||||
    location = /50x.html {
 | 
			
		||||
      root   /usr/share/nginx/html;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user