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
()¶
-