예제 #1
0
 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))
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
 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())
예제 #5
0
 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))
예제 #6
0
 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)