Skip to content

Commit b5d82fa

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

File tree

4 files changed

+74
-18
lines changed

4 files changed

+74
-18
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM openjdk:latest
2+
VOLUME ["/opt/netkiller","/app"]
3+
RUN apt update -y && apt install -y procps
4+
EXPOSE 80 443
5+
WORKDIR /opt
6+
COPY index.html /var/www

doc/docker/service.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,4 +143,51 @@ version: '3.9'
143143
------------------------------------------------------------
144144
{'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'}
145145
146+
```
147+
148+
## Context 上下文设置
149+
150+
context 设置为 /srv/netkiller
151+
152+
```python
153+
#!/usr/bin/python3
154+
#-*- coding: utf-8 -*-
155+
##############################################
156+
# Home : https://www.netkiller.cn
157+
# Author: Neo <[email protected]>
158+
# Upgrade: 2025-07-24
159+
##############################################
160+
import os, sys
161+
162+
module = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
163+
sys.path.insert(0, module)
164+
from netkiller.docker import *
165+
166+
target = 'init'
167+
168+
dockerfile = Dockerfile("neo",'/srv/netkiller')
169+
dockerfile.image('openjdk:latest').volume(['/opt/netkiller','/app']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
170+
dockerfile.copy('index.html','/var/www')
171+
172+
neo = Services('netkiller')
173+
neo.build(dockerfile)
174+
neo.image("netkiller:1.3.0")
175+
176+
development = Composes('development')
177+
development.version('3.9')
178+
development.services(neo)
179+
development.show()
180+
```
181+
182+
输出结果 context: /srv/netkiller
183+
184+
```text
185+
services:
186+
netkiller:
187+
container_name: netkiller
188+
build:
189+
context: /srv/netkiller
190+
dockerfile: ./development/netkiller/Dockerfile
191+
image: netkiller:1.3.0
192+
version: '3.9'
146193
```

doc/docker/service.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,24 @@
1313

1414
target = 'init'
1515

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)
16+
dockerfile = Dockerfile("neo",'/srv/netkiller')
17+
dockerfile.image('openjdk:latest').volume(['/opt/netkiller','/app']).run('apt update -y && apt install -y procps').expose(['80','443']).workdir('/opt')
18+
dockerfile.copy('index.html','/var/www')
19+
# dockerfile.show()
20+
# print('-'*60)
2121

2222
neo = Services('netkiller')
2323
neo.build(dockerfile)
2424
neo.image("netkiller:1.3.0")
25-
neo.show()
26-
print('-'*60)
25+
# neo.show()
26+
# print('-'*60)
2727

2828
development = Composes('development')
2929
development.version('3.9')
3030
development.services(neo)
3131
development.show()
32+
# development.workdir("/tmp/test")
3233

33-
print('-'*60)
34+
# print('-'*60)
35+
development.save('/tmp/neo.yaml')
3436
development.debug()
35-
# development.save('/tmp/neo.yaml')

netkiller/docker.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -479,13 +479,12 @@ def services(self, obj):
479479
if isinstance(obj, Services):
480480
if obj.dockerfile:
481481
self.dockerfile[obj.name] = obj.dockerfile
482-
filepath = f"{self.basedir}/{self.name}/{obj.name}/Dockerfile"
483482
build = {}
484483
if obj.dockerfile.context:
485484
build["context"] = obj.dockerfile.context
486485
else:
487486
build["context"] = os.getcwd()
488-
build["dockerfile"] = filepath
487+
build["dockerfile"] = f"{obj.dockerfile.context}/Dockerfile"
489488
obj.build(build)
490489
service = copy.deepcopy(obj.service)
491490
self.compose["services"].update(service)
@@ -521,6 +520,11 @@ def show(self):
521520

522521
def filename(self):
523522
return self.basedir + "/" + self.name + "/" + "compose.yaml"
523+
def mkdirs(self, filepath):
524+
dirname = os.path.dirname(filepath)
525+
if not os.path.isdir(dirname):
526+
os.makedirs(dirname)
527+
self.logger.info("Create directory %s" % (dirname))
524528

525529
def save(self, filename=None):
526530

@@ -540,16 +544,15 @@ def save(self, filename=None):
540544
if not filename:
541545
filename = self.filename()
542546

543-
dirname = os.path.dirname(filename)
544-
if not os.path.isdir(dirname):
545-
os.makedirs(dirname)
546-
self.logger.info("Create directory %s" % (dirname))
547+
self.mkdirs(filename)
547548

548549
try:
549550
for service, dockerfile in self.dockerfile.items():
550-
filepath = self.compose['services'][service]['build']['dockerfile']
551-
print(filepath)
551+
filepath = f"{self.basedir}/{self.name}/{service}/Dockerfile"
552+
# filepath = self.compose['services'][service]['build']['dockerfile']
553+
self.mkdirs(filepath)
552554
dockerfile.save(filepath)
555+
self.compose['services'][service]['build']['dockerfile']=filepath
553556
# self.logger.debug("Dockerfile")
554557

555558
file = open(filename, "w")
@@ -965,7 +968,6 @@ def dump(self):
965968
if self.options.environment and self.options.environment in self.composes:
966969
compose = self.composes[self.options.environment]
967970
compose.dump()
968-
# if compose:
969971
else:
970972
for env, compose in self.composes.items():
971973
print(f"---------- {env} ----------")

0 commit comments

Comments
 (0)