Skip to content

Commit d658f37

Browse files
committed
- 优化 Dockerfile
- 添加 security_opt - 日志 模式 -f
1 parent 6fa99a7 commit d658f37

34 files changed

+504
-2578
lines changed

demo/docker/dockerfile.py

Lines changed: 48 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -13,61 +13,59 @@
1313
except ImportError as err:
1414
print("%s" %(err))
1515

16-
nginx = Dockerfile()
17-
nginx.image('nginx:latest').volume(['/etc/nginx','/var/log/nginx']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
18-
nginx.show()
16+
# nginx = Dockerfile()
17+
# nginx.image('nginx:latest').volume(['/etc/nginx','/var/log/nginx']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
18+
# nginx.show()
1919

2020
# exit()
2121

22-
nginx = Dockerfile()
23-
# 基于什么镜像
24-
nginx.image('nginx:latest')
25-
# 挂载卷
26-
nginx.volume(['/etc/nginx','/var/log/nginx','/opt'])
27-
# 运行脚本
28-
nginx.run('apt update -y && apt install -y procps')
29-
# 暴漏端口
30-
nginx.expose(['80','443'])
31-
# 工作目录
32-
nginx.workdir('/opt')
33-
# 打印 Dockerfile
34-
nginx.show()
35-
36-
37-
22+
# nginx = Dockerfile()
23+
# # 基于什么镜像
24+
# nginx.image('nginx:latest')
25+
# # 挂载卷
26+
# nginx.volume(['/etc/nginx','/var/log/nginx','/opt'])
27+
# # 运行脚本
28+
# nginx.run('apt update -y && apt install -y procps')
29+
# # 暴漏端口
30+
# nginx.expose(['80','443'])
31+
# # 工作目录
32+
# nginx.workdir('/opt')
33+
# # 打印 Dockerfile
34+
# nginx.show()
35+
#
3836
# exit()
3937

40-
41-
dockerfile = Dockerfile()
42-
dockerfile.label({'org.opencontainers.image.authors':'netkiller'})
43-
dockerfile.image('openjdk:8-jdk-alpine')
44-
dockerfile.copy('test.txt','/tmp')
45-
# dockerfile.run('ls /')
46-
dockerfile.run(['aa','bb','cc'])
47-
# dockerfile.expose('9000')
48-
dockerfile.expose(['80','443'])
49-
dockerfile.volume([
50-
'/usr/local'
51-
])
52-
dockerfile.volume([
53-
'/etc/nginx',
54-
'/var/www'
55-
])
56-
dockerfile.env({'JAVA_HOME':'/lib/jvm'})
57-
# dockerfile.cmd('startup.sh')
58-
dockerfile.cmd(['sh','/startup.sh','-e sss'])
59-
# dockerfile.entrypoint('startup.sh')
60-
dockerfile.entrypoint(['sh','/startup.sh','-e sss'])
61-
dockerfile.user('nginx:nginx')
62-
dockerfile.workdir('/srv')
63-
dockerfile.show()
64-
dockerfile.save('/tmp/Dockerfile')
65-
66-
exit()
67-
68-
dockerfile = Dockerfile()
69-
dockerfile.label({'org.opencontainers.image.authors':'netkiller'})
70-
dockerfile.image('openjdk:8-jdk-alpine')
38+
#
39+
# dockerfile = Dockerfile()
40+
# dockerfile.label({'cn.netkiller.authors':'netkiller'})
41+
# dockerfile.image('openjdk:8-jdk-alpine')
42+
# dockerfile.copy('neo.txt','/tmp')
43+
# # dockerfile.run('ls /')
44+
# dockerfile.run(['aa','bb','cc'])
45+
# # dockerfile.expose('9000')
46+
# dockerfile.expose(['80','443'])
47+
# dockerfile.volume([
48+
# '/usr/local'
49+
# ])
50+
# dockerfile.volume([
51+
# '/etc/nginx',
52+
# '/var/www'
53+
# ])
54+
# dockerfile.env({'JAVA_HOME':'/lib/jvm'})
55+
# # dockerfile.cmd('startup.sh')
56+
# dockerfile.cmd(['sh','/startup.sh','-e sss'])
57+
# # dockerfile.entrypoint('startup.sh')
58+
# dockerfile.entrypoint(['sh','/startup.sh','-e sss'])
59+
# dockerfile.user('nginx:nginx')
60+
# dockerfile.workdir('/srv')
61+
# dockerfile.show()
62+
# dockerfile.save('/tmp/Dockerfile')
63+
#
64+
# exit()
65+
#
66+
# dockerfile = Dockerfile()
67+
# dockerfile.label({'org.opencontainers.image.authors':'netkiller'})
68+
# dockerfile.image('openjdk:8-jdk-alpine')
7169
# dockerfile.copy('/tmp/test.txt','/tmp')
7270
# dockerfile.run('ls /')
7371
# dockerfile.run(['aa','bb','cc'])
File renamed without changes.
File renamed without changes.
File renamed without changes.

doc/docker/service.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# Service 编排演示
2+
3+
```python
4+
#!/usr/bin/python3
5+
#-*- coding: utf-8 -*-
6+
##############################################
7+
# Home : https://www.netkiller.cn
8+
# Author: Neo <[email protected]>
9+
# Upgrade: 2025-07-24
10+
##############################################
11+
import os, sys
12+
13+
module = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
14+
sys.path.insert(0, module)
15+
from netkiller.docker import *
16+
17+
dockerfile = Dockerfile("neo")
18+
dockerfile.image('nginx:latest').volume(['/etc/nginx','/var/log/nginx']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
19+
dockerfile.show()
20+
print('-'*60)
21+
22+
neo = Services('netkiller')
23+
neo.build(dockerfile)
24+
neo.image("netkiller:1.3.0")
25+
neo.show()
26+
print('-'*60)
27+
28+
development = Composes('development')
29+
development.version('3.9')
30+
development.services(neo)
31+
development.show()
32+
33+
print('-'*60)
34+
development.debug()
35+
development.save('/tmp/neo.yaml')
36+
```
37+
38+
输出演示
39+
40+
```text
41+
FROM nginx:latest
42+
VOLUME ["/etc/nginx","/var/log/nginx"]
43+
RUN apt update -y && apt install -y procps
44+
EXPOSE 80 443
45+
WORKDIR /opt
46+
------------------------------------------------------------
47+
container_name: netkiller
48+
build:
49+
context: .
50+
dockerfile: Dockerfile
51+
image: netkiller:1.3.0
52+
53+
------------------------------------------------------------
54+
services:
55+
netkiller:
56+
container_name: netkiller
57+
build:
58+
context: /Users/neo/GitHub/devops/doc/docker
59+
dockerfile: ./development/netkiller/Dockerfile
60+
image: netkiller:1.3.0
61+
version: '3.9'
62+
63+
------------------------------------------------------------
64+
{'services': {'netkiller': {'container_name': 'netkiller', 'build': {'context': '/Users/neo/GitHub/devops/doc/docker', 'dockerfile': './development/netkiller/Dockerfile'}, 'image': 'netkiller:1.3.0'}}, 'version': '3.9'}
65+
```
66+
67+
## target 演示
68+
69+
设置 target 名称 init
70+
71+
```text
72+
FROM nginx:latest AS init
73+
COPY --from=init index.html /var/www
74+
```
75+
76+
代码
77+
78+
```python
79+
#!/usr/bin/python3
80+
#-*- coding: utf-8 -*-
81+
##############################################
82+
# Home : https://www.netkiller.cn
83+
# Author: Neo <[email protected]>
84+
# Upgrade: 2025-07-24
85+
##############################################
86+
import os, sys
87+
88+
module = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
89+
sys.path.insert(0, module)
90+
from netkiller.docker import *
91+
92+
target = 'init'
93+
94+
dockerfile = Dockerfile("neo",None,target)
95+
dockerfile.image('nginx:latest',target).volume(['/etc/nginx','/var/log/nginx']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
96+
dockerfile.copy('index.html','/var/www',target)
97+
dockerfile.show()
98+
print('-'*60)
99+
100+
neo = Services('netkiller')
101+
neo.build(dockerfile)
102+
neo.image("netkiller:1.3.0")
103+
neo.show()
104+
print('-'*60)
105+
106+
development = Composes('development')
107+
development.version('3.9')
108+
development.services(neo)
109+
development.show()
110+
111+
print('-'*60)
112+
development.debug()
113+
# development.save('/tmp/neo.yaml')
114+
```
115+
116+
输出演示
117+
118+
```text
119+
FROM nginx:latest AS init
120+
VOLUME ["/etc/nginx","/var/log/nginx"]
121+
RUN apt update -y && apt install -y procps
122+
EXPOSE 80 443
123+
WORKDIR /opt
124+
COPY --from=init index.html /var/www
125+
------------------------------------------------------------
126+
container_name: netkiller
127+
build:
128+
context: .
129+
dockerfile: Dockerfile
130+
target: init
131+
image: netkiller:1.3.0
132+
133+
------------------------------------------------------------
134+
services:
135+
netkiller:
136+
container_name: netkiller
137+
build:
138+
context: /Users/neo/GitHub/devops/doc/docker
139+
dockerfile: ./development/netkiller/Dockerfile
140+
image: netkiller:1.3.0
141+
version: '3.9'
142+
143+
------------------------------------------------------------
144+
{'services': {'netkiller': {'container_name': 'netkiller', 'build': {'context': '/Users/neo/GitHub/devops/doc/docker', 'dockerfile': './development/netkiller/Dockerfile'}, 'image': 'netkiller:1.3.0'}}, 'version': '3.9'}
145+
146+
```

doc/docker/service.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/python3
2+
#-*- coding: utf-8 -*-
3+
##############################################
4+
# Home : https://www.netkiller.cn
5+
# Author: Neo <[email protected]>
6+
# Upgrade: 2025-07-24
7+
##############################################
8+
import os, sys
9+
10+
module = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
11+
sys.path.insert(0, module)
12+
from netkiller.docker import *
13+
14+
target = 'init'
15+
16+
dockerfile = Dockerfile("neo",None,target)
17+
dockerfile.image('nginx:latest',target).volume(['/etc/nginx','/var/log/nginx']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
18+
dockerfile.copy('index.html','/var/www',target)
19+
dockerfile.show()
20+
print('-'*60)
21+
22+
neo = Services('netkiller')
23+
neo.build(dockerfile)
24+
neo.image("netkiller:1.3.0")
25+
neo.show()
26+
print('-'*60)
27+
28+
development = Composes('development')
29+
development.version('3.9')
30+
development.services(neo)
31+
development.show()
32+
33+
print('-'*60)
34+
development.debug()
35+
# development.save('/tmp/neo.yaml')

0 commit comments

Comments
 (0)