diff --git a/docker_templates/packages.py b/docker_templates/packages.py index 7daa131..d77efb8 100644 --- a/docker_templates/packages.py +++ b/docker_templates/packages.py @@ -24,12 +24,14 @@ packagePatternTemplateLookup = { 'gazebo_packages': string.Template(r'(\bPackage: gazebo$gazebo_version\n)(.*?(?:\r*\n{2}))'), + 'ignition_packages': string.Template(r'(\bPackage: $package\n)(.*?(?:\r*\n{2}))'), 'ros_packages': string.Template(r'(\bPackage: ros-$rosdistro_name-$package\n)(.*?(?:\r*\n{2}))'), 'ros2_packages': string.Template(r'(\bPackage: ros-$ros2distro_name-$package\n)(.*?(?:\r*\n{2}))'), } indexUrlTemplateLookup = { 'gazebo_packages': string.Template('http://packages.osrfoundation.org/gazebo/$os_name-$release/dists/$os_code_name/main/binary-$arch/Packages'), + 'ignition_packages': string.Template('http://packages.osrfoundation.org/gazebo/$os_name-$release/dists/$os_code_name/main/binary-$arch/Packages'), 'ros_packages': string.Template('http://packages.ros.org/ros/ubuntu/dists/$os_code_name/main/binary-$arch/Packages'), 'ros2_packages': string.Template('http://packages.ros.org/ros2/ubuntu/dists/$os_code_name/main/binary-$arch/Packages'), 'ros_packages_snapshots': string.Template('http://snapshots.ros.org/$rosdistro_name/final/ubuntu/dists/$os_code_name/main/binary-$arch/Packages'), @@ -38,12 +40,14 @@ packageNameVersionTemplateLookup = { 'gazebo_packages': string.Template('$package=$package_version*'), + 'ignition_packages': string.Template('$package=$package_version*'), 'ros_packages': string.Template('ros-$rosdistro_name-$package=$package_version*'), 'ros2_packages': string.Template('ros-$ros2distro_name-$package=$package_version*'), } packageNameTemplateLookup = { 'gazebo_packages': string.Template('$package'), + 'ignition_packages': string.Template('$package'), 'ros_packages': string.Template('ros-$rosdistro_name-$package'), 'ros2_packages': string.Template('ros-$ros2distro_name-$package'), } diff --git a/docker_templates/templates/docker_images/create_ignition_image.Dockerfile.em b/docker_templates/templates/docker_images/create_ignition_image.Dockerfile.em new file mode 100644 index 0000000..4001d9a --- /dev/null +++ b/docker_templates/templates/docker_images/create_ignition_image.Dockerfile.em @@ -0,0 +1,62 @@ +@(TEMPLATE( + 'snippet/add_generated_comment.Dockerfile.em', + user_name=user_name, + tag_name=tag_name, + source_template_name=template_name, +))@ +@(TEMPLATE( + 'snippet/from_base_image.Dockerfile.em', + template_packages=template_packages, + os_name=os_name, + os_code_name=os_code_name, + arch=arch, + base_image=base_image, + maintainer_name=maintainer_name, +))@ +@(TEMPLATE( + 'snippet/setup_tzdata.Dockerfile.em', + os_name=os_name, + os_code_name=os_code_name, +))@ +@{ +template_dependencies = [ + 'dirmngr', + 'gnupg2', + 'lsb-release', +] +}@ +@(TEMPLATE( + 'snippet/install_upstream_package_list.Dockerfile.em', + packages=template_dependencies, + upstream_packages=upstream_packages if 'upstream_packages' in locals() else [], +))@ +@ +# setup keys +RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys D2486D2DD83DB69272AFE98867170598AF249743 + +# setup sources.list +RUN . /etc/os-release \ + && echo "deb http://packages.osrfoundation.org/gazebo/$ID-stable `lsb_release -sc` main" > /etc/apt/sources.list.d/gazebo-latest.list + +# install ignition packages +RUN apt-get update && apt-get install -q -y \ + @(' \\\n '.join(ignition_packages))@ \ + && rm -rf /var/lib/apt/lists/* + +@[if 'entrypoint_name' in locals()]@ +@[ if entrypoint_name]@ +@{ +entrypoint_file = entrypoint_name.split('/')[-1] +}@ +# setup entrypoint +COPY ./@entrypoint_file / + +ENTRYPOINT ["/@entrypoint_file"] +@[ end if]@ +@[end if]@ +@{ +cmds = [ +'bash', +] +}@ +CMD ["@('", "'.join(cmds))"] diff --git a/docker_templates/templates/docker_library/ignition.em b/docker_templates/templates/docker_library/ignition.em new file mode 100644 index 0000000..5dda7bc --- /dev/null +++ b/docker_templates/templates/docker_library/ignition.em @@ -0,0 +1,24 @@ +Maintainers: @(',\n '.join(maintainers)) +GitRepo: @(repo_url) +@[for release_name, release_data in release_names.items()]@ + +################################################################################ +# Release: @(release_name) + +@[ for os_name, os_data in release_data['os_names'].items()]@ +@[ for os_code_name, os_code_data in os_data['os_code_names'].items()]@ +@[ if os_code_data['tag_names'] is not None]@ +######################################## +# Distro: @(os_name):@(os_code_name) + +@[ for tag_name, tag_data in os_code_data['tag_names'].items()]@ +Tags: @(', '.join(tag_data['Tags'])) +Architectures: @(', '.join(tag_data['Architectures'])) +GitCommit: @(tag_data['GitCommit']) +Directory: @(tag_data['Directory']) + +@[ end for]@ +@[ end if]@ +@[ end for]@ +@[ end for]@ +@[end for]@