def BuildLayer(self): """Override.""" with ftl_util.Timing('Building app layer'): buf = cStringIO.StringIO() logging.info('Starting to generate app layer \ tarfile from context...') with tarfile.open(fileobj=buf, mode='w') as out: for name in self._ctx.ListFiles(): content = self._ctx.GetFile(name) info = tarfile.TarInfo( os.path.join(self._destination_path.strip("/"), name)) info.size = len(content) out.addfile(info, fileobj=cStringIO.StringIO(content)) logging.info('Finished generating app layer tarfile from context.') tar = buf.getvalue() logging.info('Starting to gzip app layer tarfile...') gzip_process = subprocess.Popen(['gzip', '-f'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) gz = gzip_process.communicate(input=tar)[0] overrides_dct = { 'created': str(datetime.date.today()) + 'T00:00:00Z' } if self._entrypoint: overrides_dct['Entrypoint'] = self._entrypoint if self._exposed_ports: overrides_dct['ExposedPorts'] = self._exposed_ports if self._exposed_ports: overrides_dct['ExposedPorts'] = self._exposed_ports logging.info('Finished gzipping tarfile.') self._img = tar_to_dockerimage.FromFSImage([gz], [tar], overrides_dct)
def _build_layer(self): if self._should_use_yarn: blob, u_blob = self._gen_yarn_install_tar(self._directory) else: blob, u_blob = self._gen_npm_install_tar(self._directory) self._img = tar_to_dockerimage.FromFSImage( [blob], [u_blob], ftl_util.generate_overrides(False))
def BuildLayer(self): """Override.""" blob, u_blob = self._gen_composer_install_tar(self._pkg_descriptor, self._destination_path) overrides_dct = {'created': str(datetime.date.today()) + "T00:00:00Z"} self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], overrides_dct)
def _build_layer(self): python_util.setup_venv(self._venv_dir, self._venv_cmd, self._python_cmd) blob, u_blob = ftl_util.zip_dir_to_layer_sha(self._venv_dir, self._venv_dir) overrides = ftl_util.generate_overrides(True, self._venv_dir) self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], overrides)
def _build_layer(self): self._setup_venv() tar_path = tempfile.mktemp(suffix='.tar') tar_cmd = ['tar', '-cf', tar_path, self._venv_dir] ftl_util.run_command('tar_venv_interpreter', tar_cmd) u_blob = open(tar_path, 'r').read() # We use gzip for performance instead of python's zip. gzip_cmd = ['gzip', tar_path, '-1'] ftl_util.run_command('gzip_venv_interpreter', gzip_cmd) blob = open(os.path.join(tar_path + '.gz'), 'rb').read() overrides = ftl_util.generate_overrides(True, self._venv_dir) self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], overrides)
def BuildLayer(self): """Override.""" with ftl_util.Timing('Building app layer'): gz, tar = ftl_util.zip_dir_to_layer_sha(self._directory, self._destination_path) overrides_dct = { 'created': str(datetime.date.today()) + 'T00:00:00Z' } if self._entrypoint: overrides_dct['Entrypoint'] = self._entrypoint if self._exposed_ports: overrides_dct['ExposedPorts'] = self._exposed_ports if self._exposed_ports: overrides_dct['ExposedPorts'] = self._exposed_ports logging.info('Finished gzipping tarfile.') self._img = tar_to_dockerimage.FromFSImage([gz], [tar], overrides_dct)
def BuildLayer(self): cached_img = None if self._cache: with ftl_util.Timing('checking_cached_pipfile_pkg_layer'): key = self.GetCacheKey() cached_img = self._cache.Get(key) self._log_cache_result(False if cached_img is None else True) if cached_img: self.SetImage(cached_img) else: self._pip_download_wheels(' '.join(self._pkg_descriptor)) whls = self._resolve_whls() if len(whls) != 1: raise Exception("expected one whl for one installed pkg") pkg_dir = self._whl_to_fslayer(whls[0]) blob, u_blob = ftl_util.zip_dir_to_layer_sha(pkg_dir, "") overrides = ftl_util.generate_overrides(False, self._venv_dir) self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], overrides) if self._cache: with ftl_util.Timing('uploading_pipfile_pkg_layer'): self._cache.Set(self.GetCacheKey(), self.GetImage())
def _build_layer(self): blob, u_blob = self._gen_composer_install_tar(self._directory, self._destination_path) self._img = tar_to_dockerimage.FromFSImage( [blob], [u_blob], ftl_util.generate_overrides(False))
def _build_layer(self): blob, u_blob = self._gen_composer_install_tar(self._destination_path) overrides_dct = {'created': str(datetime.date.today()) + 'T00:00:00Z'} self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], overrides_dct)
def BuildLayer(self): """Override.""" blob, u_blob = self._gen_npm_install_tar(self._pkg_descriptor, self._destination_path) self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], self._generate_overrides())
def BuildLayer(self): self._setup_venv(self._python_version) blob, u_blob = ftl_util.zip_dir_to_layer_sha( os.path.abspath(os.path.join(self._venv_dir, os.pardir))) self._img = tar_to_dockerimage.FromFSImage( [blob], [u_blob], _generate_overrides(True))
def BuildLayer(self): blob, u_blob = ftl_util.zip_dir_to_layer_sha(self._pkg_dir) self._img = tar_to_dockerimage.FromFSImage( [blob], [u_blob], _generate_overrides(False))
def _build_layer(self): blob, u_blob = self._gen_npm_install_tar(self._pkg_descriptor, self._directory) self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], self._generate_overrides())
def _build_layer(self): blob, u_blob = ftl_util.zip_dir_to_layer_sha(self._pkg_dir, "") overrides = ftl_util.generate_overrides(False) self._img = tar_to_dockerimage.FromFSImage([blob], [u_blob], overrides)