Skip to content

Commit a55d6cf

Browse files
authored
Merge pull request #47 from bibaijin/master
respect ENTRYPOINT and CMD in Dockerfile
2 parents 9ebc01b + 809c239 commit a55d6cf

File tree

4 files changed

+38
-5
lines changed

4 files changed

+38
-5
lines changed

apis/base_app.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
normalize_meta_version,
1212
search_images_from_registry,
1313
get_meta_from_registry,
14+
get_image_config_from_registry,
1415
read_from_etcd,
1516
delete_from_etcd,
1617
set_value_to_etcd,
@@ -174,10 +175,19 @@ def lain_config(self):
174175
def _get_lain_config(self):
175176
if self.meta == '' or self.meta_version == '':
176177
return None
177-
config = LainConf()
178-
config.load(self.meta, self.meta_version, self.default_image,
178+
try:
179+
config = LainConf()
180+
image_config = get_image_config_from_registry(self.appname, self.meta_version)
181+
config.load(self.meta, self.meta_version, self.default_image,
182+
image_config=image_config, registry=PRIVATE_REGISTRY,
183+
domains=get_domains())
184+
return config
185+
except Exception as e:
186+
logger.error('_get_lain_config() failed, error: %s' % e)
187+
config = LainConf()
188+
config.load(self.meta, self.meta_version, self.default_image,
179189
registry=PRIVATE_REGISTRY, domains=get_domains())
180-
return config
190+
return config
181191

182192
@property
183193
def app_spec(self):

apis/utils.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def _get_registry_access_header(app, registry):
120120
jwt = Authorize.get_jwt_with_appname(app)
121121
header = {'Authorization': 'Bearer %s' % jwt}
122122
else:
123-
header = ''
123+
header = {}
124124
return header
125125

126126

@@ -171,6 +171,28 @@ def get_meta_from_registry(app, meta_version, registry=None):
171171
return y
172172

173173

174+
def get_image_config_from_registry(app, meta_version, registry=None):
175+
logger.debug("ready get meta version %s for app %s from registry" %
176+
(meta_version, app))
177+
meta_version = normalize_meta_version(meta_version)
178+
if not registry:
179+
registry = PRIVATE_REGISTRY
180+
181+
headers = _get_registry_access_header(app, registry)
182+
headers['Accept'] = 'application/vnd.docker.distribution.manifest.v2+json'
183+
url = 'http://%s/v2/%s/manifests/release-%s' % (registry, app, meta_version)
184+
resp = requests.get(url, headers=headers)
185+
if resp.status_code != 200:
186+
raise Exception("requests.get(%s, %s) failed, resp: %s" % (url, headers, resp))
187+
config_digest = resp.json()['config']['digest']
188+
headers = _get_registry_access_header(app, registry)
189+
url = 'http://%s/v2/%s/blobs/%s' % (registry, app, config_digest)
190+
resp = requests.get(url, headers=headers)
191+
if resp.status_code != 200:
192+
raise Exception("requests.get(%s, %s) failed, resp: %s" % (url, headers, resp))
193+
return resp.json()['config']
194+
195+
174196
def shell(cmd):
175197
retcode = 0
176198
output = None

lain.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ build:
55
prepare:
66
version: "20170612"
77
script:
8+
- yum install -y yum-plugin-ovl
89
- yum install -y gcc-c++
910
- git clone --depth=1 https://github.com/golang/sys.git $GOPATH/src/golang.org/x/sys
1011
- git clone --depth=1 https://github.com/golang/net.git $GOPATH/src/golang.org/x/net

pip-req.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ pyjwt==1.4.0
2626
netaddr==0.7.18
2727
raven==5.13.0
2828
mysqlclient==1.3.10
29-
lain-sdk==2.3.5
29+
lain-sdk==2.3.7
3030
-e git+https://github.com/projectcalico/[email protected]#egg=pycalico-0.8.0-dev

0 commit comments

Comments
 (0)