def _run_container(self, container_name, cmd, run_mod='d', ports=[]): envs = [] volumes = { self.app_config_dir + '/local.acl': '/etc/local.acl' } args = dockerutil.base_docker_args(container_name=container_name, envs=envs, ports=ports, volumes=volumes) cmd_data = {} cmd_data['image'] = self.ss_image cmd_data['args'] = args cmd_data['cmd'] = cmd cmd_data['run_mod'] = run_mod cmd = template.render_str('docker run {{ run_mod }} -u root --restart always {{ args }} {{ image }} sh -c "{{ cmd }}"', cmd_data) self.shell_run(cmd)
def _run_container(self, container_name, cmd, mod): volumes = {self.root_dir: '/opt'} args = dockerutil.base_docker_args(container_name=container_name, volumes=volumes, working_dir='/opt') cmd_data = {} cmd_data['image'] = image_name cmd_data['args'] = args cmd_data['cmd'] = cmd cmd_data['run_mod'] = mod cmd = template.render_str( 'docker run {{ run_mod }} --net=host --restart always {{ args }} {{ image }} bash -c "{{ cmd }}"', cmd_data) self.shell_run(cmd)
def run(self, key_file, args): key_file = os.path.expanduser(key_file) key_file = os.path.abspath(key_file) working_dir = '/opt/app' volumes = { key_file: key_file, } container_name = 'fs' cmd = '%s/hs-airdrop/bin/hs-airdrop %s %s' % (working_dir, key_file, args) docker_args = dockerutil.base_docker_args(container_name=container_name, volumes=volumes, auto_hostname=False) docker_args += ' -w %s' % (working_dir) self.stop_container(container_name) image = 'docker-genesis.0xhash.cn/' + image_name cmd = 'docker run -it %s --rm %s %s' % (docker_args, image, cmd) self.shell_run(cmd)
def _run_fe_container(self, cmd): self.remove_container(fe_container, force=True) working_dir = '/opt/app/_fe' volumes = { self.root_dir: '/opt/app', } args = dockerutil.base_docker_args(container_name=fe_container, volumes=volumes, working_dir=working_dir) cmd_data = { 'image': app_fe_image, 'args': args, 'cmd': cmd, 'mod': dockerutil.fg_mode() } cmd = template.render_str( 'docker run {{ mod }} --rm {{ args }} {{ image }} {{ cmd }}', cmd_data) self.shell_run(cmd)
def _run_blog_container(self, cmd): self.remove_container(blog_container, force=True) working_dir = '/opt/app' self.site_dir = '/opt/data/g-nginx/persistent/sites/liaohuqiu' file.ensure_dir(self.site_dir) volumes = { self.root_dir: working_dir, self.site_dir: '/opt/app/_site', } args = dockerutil.base_docker_args(container_name=blog_container, volumes=volumes, working_dir=working_dir) cmd_data = { 'image': blog_image, 'args': args, 'cmd': cmd, 'mod': dockerutil.fg_mode() } cmd = template.render_str( 'docker run {{ mod }} --rm {{ args }} {{ image }} {{ cmd }}', cmd_data) self.shell_run(cmd)
def _start(self, script, env): self._link_node_modules(self.landing_app_dir + '/node_modules') volumes = { self.landing_app_dir: '/opt/src', } args = dockerutil.base_docker_args( container_name=container_config[env]['container_name'], volumes=volumes, ports=container_config[env]['ports']) cmd_args = 'npm run %s --prefix /opt/src' % script # cmd_args = 'bash' cmd_data = { 'image': image, 'args': args, 'cmd_args': cmd_args, 'mode': container_config[env]['mode'] } cmd = template.render_str( 'docker run {{ mode }} --privileged=true --restart always {{ args }} {{ image }} {{ cmd_args }}', cmd_data) self.shell_run(cmd)