invirtualenv_plugins.docker module

class invirtualenv_plugins.docker.InvirtualenvDocker(config_file='deploy.conf')

Bases: invirtualenv.plugin_base.InvirtualenvPlugin

config_default = '[docker_container]\nadd=\nbase_image=ubuntu:17.10\ncmd=\ncontainer_name=\ncopy:\nentrypoint=\nenv:\nexpose:\ndeb_deps:\nfiles:\nhealthcheck=\nlabel:\nrpm_deps:\nrun_before:\nrun_after:\nsetenv:\nstopsignal=\nuser=\nvolume:\nworkdir_start=\n'
config_types = {'docker_container': {'add': <type 'list'>, 'base_image': <type 'str'>, 'cmd': <type 'str'>, 'container_name': <type 'str'>, 'copy': <type 'list'>, 'deb_deps': <type 'list'>, 'entrypoint': <type 'str'>, 'env': <function str_to_dict>, 'expose': <type 'list'>, 'files': <type 'list'>, 'healthcheck': <type 'str'>, 'label': <type 'list'>, 'rpm_deps': <type 'list'>, 'run_after': <type 'list'>, 'run_before': <type 'list'>, 'setenv': <function str_to_dict>, 'stopsignal': <type 'str'>, 'user': <type 'str'>, 'volume': <type 'list'>, 'workdir_start': <type 'str'>}}
default_config_filename = 'Dockerfile.invirtualenv'
generate_wheel_archive(filename=None)
generate_wheel_packages(wheeldir)

Generate wheel packages for all dependencies

Parameters:wheeldir (str) – The directory path to store the generated wheel packages
Returns:
Return type:dict of filename, pip requirements line
package_formats = ['docker']
package_template = 'FROM {{docker_container[\'base_image\']|default(\'ubuntu:17.10\')}}\n\n{% if docker_container[\'workdir_start\'] %}WORKDIR {{docker_container[\'workdir_start\']}}\n{% endif -%}\n{% if docker_container[\'add\'] or docker_container[\'files\'] or docker_container[\'copy\'] %}# Files\n{% endif -%}\n{%- if docker_container[\'add\'] %}{% for file_line in docker_container[\'add\'] %}ADD {{file_line}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'files\'] %}{% for file_line in docker_container[\'files\'] %}COPY {{file_line}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'copy\'] %}{% for file_line in docker_container[\'copy\'] %}COPY {{file_line}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'add\'] or docker_container[\'files\'] or docker_container[\'copy\'] %}\n{% endif -%}\n{% if docker_container[\'setenv\'] or docker_container[\'env\'] %}# Environment Settings\n{% endif -%}{% if docker_container[\'setenv\'] %}{% for setting, value in docker_container[\'setenv\'].items() %}ENV {{setting}}="{{value}}"\n{% endfor %}{% endif -%}\n{%- if docker_container[\'env\'] %}{% for setting, value in docker_container[\'env\'].items() %}ENV {{setting}}="{{value}}"\n{% endfor %}{% endif -%}\n{%- if docker_container[\'env\'] or docker_container[\'setenv\'] %}\n{% endif -%}\n{% if docker_container[\'expose\'] %}# Ports\n{% for expose_port in docker_container[\'expose\'] %}EXPOSE {{expose_port}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'expose\'] %}\n{% endif -%}\n{% if docker_container[\'label\'] %}# Labels\n{% for label in docker_container[\'label\'] %}LABEL {{label}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'label\'] %}\n{% endif -%}\n{%- if docker_container[\'volume\'] %}# Volumes\n{% for volume in docker_container[\'volume\'] %}VOLUME {{volume}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'volume\'] %}\n{% endif -%}\n{%- if docker_container[\'run_before\'] %}# Pre Invirtulenv Commands\n{% for runline in docker_container[\'run_before\'] %}RUN {{runline}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'run_before\'] %}\n{% endif -%}\n# Set up invirtualenv in the container\nENV PATH="/var/lib/invirtualenv/installvenv/bin:${PATH}"\nCOPY docker_build.sh /tmp/docker_build.sh\nCOPY deploy.conf /var/lib/invirtualenv/deploy.conf\nRUN chmod 755 /tmp/docker_build.sh && /tmp/docker_build.sh && rm /tmp/docker_build.sh\n\n{% if docker_container[\'run_after\'] %}# Post Invirtualenv Commands\n{% for runline in docker_container[\'run_after\'] %}RUN {{runline}}\n{% endfor %}{% endif -%}\n{%- if docker_container[\'run_after\'] %}\n{% endif -%}\n\n{% if docker_container[\'entrypoint\'] %}ENTRYPOINT {{docker_container[\'entrypoint\']}}\n{% endif -%}\n{% if docker_container[\'cmd\'] %}CMD {{docker_container[\'cmd\']}}\n{% endif -%}\n{% if docker_container[\'healthcheck\'] %}HEALTHCHECK {{docker_container[\'healthcheck\']}}\n{% endif -%}\n{% if docker_container[\'stopsignal\'] %}STOPSIGNAL {{docker_container[\'stopsignal\']}}\n{% endif -%}\n{% if docker_container[\'user\'] %}USER {{docker_container[\'user\']}}\n{% endif -%}\n'
run_package_command(package_hashes, wheel_dir='wheels')

Run the command to generate the package based on the hash

system_requirements_ok()

Check if all the system requirements for this plugin are met.

Returns:True if requirements are met, False otherwise
Return type:bool
write_command_scripts()