Pseudo-versions, moving to Go1.13 and later versionsMitali Bisht
This document discusses pseudo-versions in Go modules, changes introduced in Go 1.13 to validate pseudo-versions, and what Go 1.14 brings for modules. It covers that pseudo-versions are used for untagged revisions, Go 1.13 validates pseudo-versions match commit timestamps, and how GoCenter as a GOPROXY can help fix incorrect pseudo-versions. It also mentions new features in Go 1.14 like specifying an alternate go.mod file and upgrading to incompatible major versions with 'go get'.
This document discusses how to run Plone, an open source content management system, using Docker. It provides instructions for running Plone 4 and 5 with Docker, including specifying Plone add-ons. It also shares links to demo videos, the Docker image repository, source code, and contact information for questions.
This document summarizes key concepts of Git including snapshots, histories as sequences of snapshots, parallel universes/histories, and basic Git commands like init, add, commit, branch, checkout, merge, rebase, remote repositories, and free hosting services. The document uses diagrams and examples to explain how Git conceptually implements versions as snapshots and allows managing parallel software histories through branches.
This document discusses using Docker to deploy and manage Plone CMS installations. It begins by explaining what Docker is and how it provides isolated, consistent environments. It then compares installing and running Plone without Docker versus with Docker. With Docker, the process is simplified and the same environment can be easily replicated. The document also covers developing Plone add-ons within Docker containers, debugging, managing data volumes, running ZEO clusters, extending Docker images, and using Docker Compose and Rancher for orchestration and continuous deployment.
Let the contribution begin (EST futures)SeongJae Park
The document discusses contributing to open source software as a newcomer. It recommends getting the source code, making small, targeted changes like fixing coding style issues, and submitting patches for review. The Linux kernel is presented as a popular project to start contributing to. Topic branches in version control are introduced as a way to develop changes separately before submitting them for merging.
Deep dark-side of git: How git works internallySeongJae Park
Describe how git works internally using small and perfect plumbing commands.
The slide have been used at GDG DevFest 2014 and SOSCON 2014.
The slide can be updated later. And, the latest version would always be provided from this page always.
The program uses a for loop to iterate from 1 to 100. Inside the loop, it uses if/else conditions to check if the number is divisible by 3, 5, or both and prints the corresponding string. If none of the conditions are met, it prints the number.
Pseudo-versions, moving to Go1.13 and later versionsMitali Bisht
This document discusses pseudo-versions in Go modules, changes introduced in Go 1.13 to validate pseudo-versions, and what Go 1.14 brings for modules. It covers that pseudo-versions are used for untagged revisions, Go 1.13 validates pseudo-versions match commit timestamps, and how GoCenter as a GOPROXY can help fix incorrect pseudo-versions. It also mentions new features in Go 1.14 like specifying an alternate go.mod file and upgrading to incompatible major versions with 'go get'.
This document discusses how to run Plone, an open source content management system, using Docker. It provides instructions for running Plone 4 and 5 with Docker, including specifying Plone add-ons. It also shares links to demo videos, the Docker image repository, source code, and contact information for questions.
This document summarizes key concepts of Git including snapshots, histories as sequences of snapshots, parallel universes/histories, and basic Git commands like init, add, commit, branch, checkout, merge, rebase, remote repositories, and free hosting services. The document uses diagrams and examples to explain how Git conceptually implements versions as snapshots and allows managing parallel software histories through branches.
This document discusses using Docker to deploy and manage Plone CMS installations. It begins by explaining what Docker is and how it provides isolated, consistent environments. It then compares installing and running Plone without Docker versus with Docker. With Docker, the process is simplified and the same environment can be easily replicated. The document also covers developing Plone add-ons within Docker containers, debugging, managing data volumes, running ZEO clusters, extending Docker images, and using Docker Compose and Rancher for orchestration and continuous deployment.
Let the contribution begin (EST futures)SeongJae Park
The document discusses contributing to open source software as a newcomer. It recommends getting the source code, making small, targeted changes like fixing coding style issues, and submitting patches for review. The Linux kernel is presented as a popular project to start contributing to. Topic branches in version control are introduced as a way to develop changes separately before submitting them for merging.
Deep dark-side of git: How git works internallySeongJae Park
Describe how git works internally using small and perfect plumbing commands.
The slide have been used at GDG DevFest 2014 and SOSCON 2014.
The slide can be updated later. And, the latest version would always be provided from this page always.
The program uses a for loop to iterate from 1 to 100. Inside the loop, it uses if/else conditions to check if the number is divisible by 3, 5, or both and prints the corresponding string. If none of the conditions are met, it prints the number.
"Puppet at GitHub" by Will Farrington of GitHub at Puppet Camp Raleigh 2013. You can find Will's slides in their native habitat here: https://speakerdeck.com/wfarr/puppet-at-github-puppetcamp-raleigh-2013
Conan.io - The C/C++ package manager for DevelopersUilian Ries
Conan is a decentralized package manager for C and C++ that handles both source code and pre-compiled binaries. It addresses issues with building dependencies from source by allowing developers to define packages through recipes that specify dependencies and build instructions. Conan packages are cached locally and identified by name, version, and user/channel to allow isolation of builds. The Conan community contributes package recipes through open source projects on GitHub like the Conan Center and Bincrafters organization.
Describe how to contribute to open source projects.
Provide example process using two hot open source project, linux and AOSP(Android Open Source Project)
Git: An introduction of plumbing and porcelain commandsth507
This document provides an introduction to Git and version control systems. It begins with a poll asking about experience with Git, SVN, and git rebase. It then discusses key Git concepts like distributed version control, the working/staging area, and how Git works. It covers the different types of version control systems and compares centralized and distributed models. The document dives deeper into Git objects like blobs, trees, commits and references. It also distinguishes between low-level plumbing commands and higher-level porcelain commands.
Do you know the basics of Git but wonder what all the hype is about? Do you want the ultimate control over your Git history? This tutorial will walk you through the basics of committing changes before diving into the more advanced and "dangerous" Git commands.
Git is an open source, distributed version control system used to track many different projects. You can use it to manage anything from a personal notes directory to a multi-programmer project.
This tutorial provides a short walk through of basic git commands and the Git philosophy to project management. Then we’ll dive into an exploration of the more advanced and “dangerous” Git commands. Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.
This document provides an overview of Git and GitHub. It discusses what Git is, how it works by storing content in trees and commits, and its advantages like efficiency and handling non-linear development. It also covers installing and configuring Git, including common settings. Key Git workflows like staging changes and committing are demonstrated. The document explains Git's three-tree model and inspection tools. It emphasizes the importance of branching in Git and how branches are cheap to create. Merging branches is shown to be powerful in Git.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
This document summarizes several common Git commands:
- Git merge joins two or more development histories together in either a fast-forward or no fast-forward manner.
- Git log displays commit history and allows formatting and filtering options like oneline, decorate, stats, diffs, shortlog, graph and custom formats.
- Other commands covered include revert, checkout, reset, cherry-pick, rebase and filtering log output by amount, date, author, message, file, content and range.
How we scaled git lab for a 30k employee companyMinqi Pan
GitLab, the open source alternative to GitHub written in Rails, does not scale automatically out of the box, as it stores its git repositories on a single filesystem, making storage capabilities hard to expand. Rather than attaching a NAS server, we decided to use a cloud-based object storage (such as S3) to replace the FS. This introduced changes to both the Ruby layer and the deeper C layers. In this talk, we will show the audience how we did the change and overcame the performance loss introduced by network I/O.
Understanding Pseudo-Versions Moving to Go 1.13 What is in Go 1.14+ for ModulesMitali Bisht
Explaining pseudo-version, how restrictions have been enforced for pseudo-version in Go 1.13 along with go sumdb, resolving them , features in Go 1.14+ related to modules
The document discusses an advanced Git workshop covering topics like the staging area, commits, references, merging, rebasing, and more advanced tools. It provides an overview of the topics that will be covered in each part of the class and requirements for attending. Key areas covered include the staging area, commits, references like branches and tags, and advanced tools like stashing and rebasing.
Git, CMake, Conan - How to ship and reuse our C++ projects?Mateusz Pusz
These are the slides from my CppCon 2018 talk. You can find the recording here: https://www.youtube.com/watch?v=S4QSKLXdTtA. All my other talks can be found here: https://train-it.eu/resources.
---
Git and CMake are already established standards in our community. However, it is uncommon to see them being used in an efficient way. As a result, many C++ projects have big problems with either importing other dependencies or making themselves easy to import by others. It gets even worse when we need to build many different configurations of our package on one machine.
That presentation lists and addresses the problems of build system and packaging that we have with large, multi-platform, C++ projects that often have many external and internal dependencies. The talk will present how proper use of CMake and Conan package manager can address those use cases. It will also describe current issues with the cooperation of those tools.
If you've attended or seen my talk at C++Now 2018, that time you can expect much more information on Conan and package creation using that tool. I will also describe how the integration of CMake and Conan changed over the last few months.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...Dexter Horthy
Slides from Docker Los Angeles meetup on 4/18/2018.
Most of us have used Docker to ship application code from a laptop or a continuous integration system to a production server. But why stop there? In this talk, we will discuss some little known and less commonly understood ways to use Docker to increase portability of everything else. For example, Docker can be used as a portable apt repository to install packages on any server, not only in a container. Another example is to use Docker (and LinuxKit) as a way to distribute Docker images when a registry isn’t available.
*About the Speaker:*
Dex Horthy, is a Core Engineer at Replicated. He has spent the last year designing and writing production grade enterprise software for the Replicated platform, including container orchestration runtimes and custom integrations into the Kubernetes and Docker APIs.
DevOps for Opensource Geospatial Applicationstlpinney
This document discusses using Vagrant and VirtualBox to create a development environment for open source geospatial applications. It describes how to install Vagrant and VirtualBox, initialize a Vagrantfile, and clone an OSM (OpenStreetMap) development box from GitHub. The document then covers using Veewee to define and build custom virtual machine boxes, like one based on CentOS 5.7 with an OpenStreetMap stack, for use with Vagrant. It aims to provide dev/prod parity through reproducible environments.
This document discusses deploying Docker containers to Google Cloud Platform using Kubernetes. It covers building Docker images from Dockerfiles, pushing images to Google Container Registry, deploying containers using Kubernetes replication controllers and services, and performing rolling updates to deploy new versions of containers.
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
This document provides numerous examples of Git aliases that can help streamline workflows. It begins by demonstrating aliases for common commands like status, last commit, checkout, add, commit, reset, and grep. It then shows more advanced aliases for managing branches, commits, and reflogs. Throughout, it emphasizes that aliases can make workflows more efficient by avoiding repetitive tasks and that teams should consider sharing standardized aliases. It concludes by encouraging readers to continually learn Git, customize workflows for their needs, and view themselves as craftspeople improving their skills.
Explains how Docker and Nix work as deployment solutions, in what ways they are similar and different, and how they can be combined to achieve interesting results.
Scaling Development Environments with DockerDocker, Inc.
This document discusses using Docker to create a scalable development environment. It outlines setting up containers for different development components like the build server, production servers, and tools. Templates are used to configure container dependencies and build processes. The goal is allowing developers to run all components locally for testing and to reproduce the production environment.
This document summarizes the steps to build and run a Docker container for Nginx. It describes creating a Dockerfile that installs Nginx on Ubuntu, builds the image, runs a container from the image mounting a local directory, and commits changes to create a new image version. Key steps include installing Nginx, exposing ports 80 and 443, committing a container to create a new image with added files, and using Docker commands like build, run, commit, diff and inspect.
"Puppet at GitHub" by Will Farrington of GitHub at Puppet Camp Raleigh 2013. You can find Will's slides in their native habitat here: https://speakerdeck.com/wfarr/puppet-at-github-puppetcamp-raleigh-2013
Conan.io - The C/C++ package manager for DevelopersUilian Ries
Conan is a decentralized package manager for C and C++ that handles both source code and pre-compiled binaries. It addresses issues with building dependencies from source by allowing developers to define packages through recipes that specify dependencies and build instructions. Conan packages are cached locally and identified by name, version, and user/channel to allow isolation of builds. The Conan community contributes package recipes through open source projects on GitHub like the Conan Center and Bincrafters organization.
Describe how to contribute to open source projects.
Provide example process using two hot open source project, linux and AOSP(Android Open Source Project)
Git: An introduction of plumbing and porcelain commandsth507
This document provides an introduction to Git and version control systems. It begins with a poll asking about experience with Git, SVN, and git rebase. It then discusses key Git concepts like distributed version control, the working/staging area, and how Git works. It covers the different types of version control systems and compares centralized and distributed models. The document dives deeper into Git objects like blobs, trees, commits and references. It also distinguishes between low-level plumbing commands and higher-level porcelain commands.
Do you know the basics of Git but wonder what all the hype is about? Do you want the ultimate control over your Git history? This tutorial will walk you through the basics of committing changes before diving into the more advanced and "dangerous" Git commands.
Git is an open source, distributed version control system used to track many different projects. You can use it to manage anything from a personal notes directory to a multi-programmer project.
This tutorial provides a short walk through of basic git commands and the Git philosophy to project management. Then we’ll dive into an exploration of the more advanced and “dangerous” Git commands. Watch as we rewrite our repository history, track bugs down to a specific commit, and untangle commits into an LKML-worthy patchset.
This document provides an overview of Git and GitHub. It discusses what Git is, how it works by storing content in trees and commits, and its advantages like efficiency and handling non-linear development. It also covers installing and configuring Git, including common settings. Key Git workflows like staging changes and committing are demonstrated. The document explains Git's three-tree model and inspection tools. It emphasizes the importance of branching in Git and how branches are cheap to create. Merging branches is shown to be powerful in Git.
This document provides instructions for installing various developer tools including Git, Vim, Java, Tomcat, Maven, and Psi Probe on Linux, Mac OSX, and Windows. It then outlines 3 homework assignments: 1) creating a basic Git repository, 2) forking and cloning a provided repository, adding a feature, resolving conflicts, and deploying the application, and 3) using Psi Probe to manage Tomcat web applications. Step-by-step instructions are provided for completing each task along with explanations of commands used.
This document summarizes several common Git commands:
- Git merge joins two or more development histories together in either a fast-forward or no fast-forward manner.
- Git log displays commit history and allows formatting and filtering options like oneline, decorate, stats, diffs, shortlog, graph and custom formats.
- Other commands covered include revert, checkout, reset, cherry-pick, rebase and filtering log output by amount, date, author, message, file, content and range.
How we scaled git lab for a 30k employee companyMinqi Pan
GitLab, the open source alternative to GitHub written in Rails, does not scale automatically out of the box, as it stores its git repositories on a single filesystem, making storage capabilities hard to expand. Rather than attaching a NAS server, we decided to use a cloud-based object storage (such as S3) to replace the FS. This introduced changes to both the Ruby layer and the deeper C layers. In this talk, we will show the audience how we did the change and overcame the performance loss introduced by network I/O.
Understanding Pseudo-Versions Moving to Go 1.13 What is in Go 1.14+ for ModulesMitali Bisht
Explaining pseudo-version, how restrictions have been enforced for pseudo-version in Go 1.13 along with go sumdb, resolving them , features in Go 1.14+ related to modules
The document discusses an advanced Git workshop covering topics like the staging area, commits, references, merging, rebasing, and more advanced tools. It provides an overview of the topics that will be covered in each part of the class and requirements for attending. Key areas covered include the staging area, commits, references like branches and tags, and advanced tools like stashing and rebasing.
Git, CMake, Conan - How to ship and reuse our C++ projects?Mateusz Pusz
These are the slides from my CppCon 2018 talk. You can find the recording here: https://www.youtube.com/watch?v=S4QSKLXdTtA. All my other talks can be found here: https://train-it.eu/resources.
---
Git and CMake are already established standards in our community. However, it is uncommon to see them being used in an efficient way. As a result, many C++ projects have big problems with either importing other dependencies or making themselves easy to import by others. It gets even worse when we need to build many different configurations of our package on one machine.
That presentation lists and addresses the problems of build system and packaging that we have with large, multi-platform, C++ projects that often have many external and internal dependencies. The talk will present how proper use of CMake and Conan package manager can address those use cases. It will also describe current issues with the cooperation of those tools.
If you've attended or seen my talk at C++Now 2018, that time you can expect much more information on Conan and package creation using that tool. I will also describe how the integration of CMake and Conan changed over the last few months.
Conan is a C/C++ package manager that allows defining and consuming packages from source code or pre-compiled binaries. It supports dependency management, configuration, and testing of C/C++ projects. The document provides an example of using Conan to retrieve and link to the Poco networking library in a C++ project, and describes how to create, test, and publish Conan packages from source code.
More than Applications: (Ab)using Docker to Improve the Portability of Everyt...Dexter Horthy
Slides from Docker Los Angeles meetup on 4/18/2018.
Most of us have used Docker to ship application code from a laptop or a continuous integration system to a production server. But why stop there? In this talk, we will discuss some little known and less commonly understood ways to use Docker to increase portability of everything else. For example, Docker can be used as a portable apt repository to install packages on any server, not only in a container. Another example is to use Docker (and LinuxKit) as a way to distribute Docker images when a registry isn’t available.
*About the Speaker:*
Dex Horthy, is a Core Engineer at Replicated. He has spent the last year designing and writing production grade enterprise software for the Replicated platform, including container orchestration runtimes and custom integrations into the Kubernetes and Docker APIs.
DevOps for Opensource Geospatial Applicationstlpinney
This document discusses using Vagrant and VirtualBox to create a development environment for open source geospatial applications. It describes how to install Vagrant and VirtualBox, initialize a Vagrantfile, and clone an OSM (OpenStreetMap) development box from GitHub. The document then covers using Veewee to define and build custom virtual machine boxes, like one based on CentOS 5.7 with an OpenStreetMap stack, for use with Vagrant. It aims to provide dev/prod parity through reproducible environments.
This document discusses deploying Docker containers to Google Cloud Platform using Kubernetes. It covers building Docker images from Dockerfiles, pushing images to Google Container Registry, deploying containers using Kubernetes replication controllers and services, and performing rolling updates to deploy new versions of containers.
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
This document provides numerous examples of Git aliases that can help streamline workflows. It begins by demonstrating aliases for common commands like status, last commit, checkout, add, commit, reset, and grep. It then shows more advanced aliases for managing branches, commits, and reflogs. Throughout, it emphasizes that aliases can make workflows more efficient by avoiding repetitive tasks and that teams should consider sharing standardized aliases. It concludes by encouraging readers to continually learn Git, customize workflows for their needs, and view themselves as craftspeople improving their skills.
Explains how Docker and Nix work as deployment solutions, in what ways they are similar and different, and how they can be combined to achieve interesting results.
Scaling Development Environments with DockerDocker, Inc.
This document discusses using Docker to create a scalable development environment. It outlines setting up containers for different development components like the build server, production servers, and tools. Templates are used to configure container dependencies and build processes. The goal is allowing developers to run all components locally for testing and to reproduce the production environment.
This document summarizes the steps to build and run a Docker container for Nginx. It describes creating a Dockerfile that installs Nginx on Ubuntu, builds the image, runs a container from the image mounting a local directory, and commits changes to create a new image version. Key steps include installing Nginx, exposing ports 80 and 443, committing a container to create a new image with added files, and using Docker commands like build, run, commit, diff and inspect.
Instrumentación de entrega continua con GitlabSoftware Guru
Mostraremos el caso real de cómo tenemos implementado en nuestra empresa el flujo de desarrollo para integración y entrega continua, instrumentado con GitLab.
Sesión presentada por David Padilla en SG Next 2017
Streamline your development environment with dockerGiacomo Bagnoli
These days applications are getting more and more complex. It's becoming quite
difficult to keep track of all the different components an application needs in order to
function (a database, a message queueing system, a web server, a document
store, a search engine, you name it.). How many times we heard 'it worked on my
machine'?. In this talk we are going to explore Docker, what it is, how it works
and how much it can benefit in keeping the development environment consistent.
We are going to talk about Dockerfiles, best practices, tools like fig and vagrant,
and finally show an example of how it applies to a ruby on rails
application.
The document describes building a custom Cloud Native Buildpack (CNB) that includes the jq command line JSON processor. It includes details on:
1. The structure of the jq-cnb buildpack with its buildpack.toml metadata file, bin/detect script, and bin/build script
2. Running a build with the jq-cnb which downloads jq, detects and builds the application, and exports the final image
3. The phases of the build including detect, analyze, restore, build, and export
Git is a distributed version control system that provides the following benefits:
- It is lightweight, distributed, offers security and code integrity, and allows for easy branching. Common Git commands include add, commit, push, pull, clone, and status.
- Remote repositories can be accessed via SSH or HTTP protocols. Common workflows involve cloning repositories, fetching and checking out branches, pushing local commits, and pruning remote branches.
- Branching allows developers to work independently on features or bugs without disrupting the main line of development. Branches can be merged back together when complete.
Docker is introduced and demoed. The document discusses running a Ghost container with Docker using the "docker run" command. It then covers building a development environment Docker image and using Docker for local development by mounting volumes, publishing ports, setting the working directory and running interactively. Finally, it discusses running end to end tests by starting a Selenium container and running tests with chimp, and debugging using VNC.
This document outlines the standard Go development workflow including setting up a GOPATH, writing Go code within a package, building, installing, testing, and using packages. It provides examples of creating a "hello world" program and string manipulation package with tests. The workflow demonstrates building packages locally and across packages by importing and using the installed packages.
The document discusses automating software deployment using Ansible. It provides an overview of Ansible's basic concepts like inventory files to define hosts, playbooks to execute tasks on hosts, and roles to bundle related tasks. It then discusses using Ansible roles to automate deployments, including the ansistrano roles which can deploy applications by copying files, managing releases, and supporting deployment hooks. Overall the document presents Ansible as a way to easily automate and standardize software deployment processes.
Bundling Packages and Deploying Applications with RPMAlexander Shopov
This document summarizes the steps to build an RPM package for a sample Java application called Counterbean using Tomcat. It describes preparing the build environment by installing necessary packages, creating a dedicated packager user, and initializing the RPM build tree. The document then walks through editing the spec file, adding dependencies, and building and installing the RPM package locally. Key aspects covered include file ownership, startup scripts, and switching the application's database.
Использование Docker в CI / Александр Акбашев (HERE Technologies)Ontico
РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 6 июня, 17:00
Тезисы:
http://rootconf.ru/2017/abstracts/2504.html
В своём докладе я расскажу о том, почему мы решили использовать Docker в рамках Continuous Integration: ускорить тесты, повысить стабильность, улучшить контроль над окружением и используемыми библиотеками.
Доклад так же содержит подробности о многих сложностях, с которыми пришлось столкнуться в ходе миграции на Docker: борьба с растущим числом и размером образов, бесконтрольные обновления образов, нестабильное поведение, и другие.
В конце доклада я покажу, как именно мы следим за стабильностью Docker в нашей инфраструктуре. И насколько Docker стабилен на больших объемах (больше 100k билдов в сутки).
Code Smart - Makefile (special release)Yu-Chuan Pi
This slides is licensed under CC-BY-SA 3.0 Taiwan. It is welcome to share and remix, as long as you credit the author(s) and license the new creations under the identical terms.
This document describes a GitLab CI/CD workflow using GitLab, Docker, GitLab Runner, and Ansible. Developers push code to a GitLab repo, which triggers a GitLab Runner job to build a Docker image. Ansible is then used to provision servers based on the environment. The benefits of using Ansible include managing everything from one playbook to clone code, build containers, deploy applications, and more. Examples of using shell scripts versus Ansible playbooks are provided.
Talk given at Devoxx Belgium 2018
Spring Boot is awesome. Docker is awesome. Together you can do great things. But, are you doing it the right way? We'll walk you through, in detail, the optimal way to structure Docker images for Spring Boot applications for iterative development. Structuring your Docker images correctly is really important for teams doing continuous integration and continuous delivery. Using Docker best practices, we'll show you the code and the technologies used to optimize Docker images for Spring Boot apps!
In this talk, we'll discover how Docker comes to the rescue of the Ops Team, while rebuilding from scratch our monitoring infrastructure. We'll start by quickly describing the challenges, to focus on why and how using docker saved the project. From fixing dependencies and isolation issues, implementing rolling upgrades and new features hot addition, to building a completely modular, scalable and resilient infrastructure, we'll talk about why CI/CD workflows, docker tooling and Docker Swarm were the key to success.
Libnetwork, Docker's networking plugin, has updated to be compatible with the Container Network Interface (CNI) specification used by Kubernetes. Libnetwork drivers can now be used as CNI plugins without changes to the CNM object model or Libnetwork core. This allows full integration with Kubernetes networking and use of Libnetwork's various networking drivers like bridge, overlay, and MacVlan through the CNI interface.
This document discusses CRI-Containerd, which is a CRI implementation that allows Kubernetes to use Containerd as its container runtime. It provides an overview of CRI and how it enables Kubernetes to work with different runtimes. It then discusses how Containerd's scope aligns well with CRI's requirements. It introduces CRI-Containerd and its architecture, and notes that it is now feature complete and passing all CRI and Kubernetes tests. Upcoming work includes additional testing, integration with kube-up.sh, and a 1.0.0-beta.0 release by the end of 2017. It concludes with a demo of CRI-Containerd in action.
OpenFaaS (Functions as a Service) is a framework for building serverless functions with Docker which has first class support for metrics. Any process can be packaged as a function enabling you to consume a range of web events without repetitive boiler-plate coding.
LinuxKit is a toolkit for building secure, portable, and lean container-based operating systems. Over the past six months, it has gained 75 contributors and seen improvements like support for additional platforms, TPM support, immutable images, and newer kernel versions. Looking ahead, the next six months will focus on stable releases when Containerd 1.0 is available, using LinuxKit as the basis for Docker desktop and cloud editions, and expanding Kubernetes integration and production usage. The LinuxKit Security SIG has also deep dived several security projects and aims to contribute further to upstream Linux security.
The Notary project has officially been accepted in to the Cloud Native Computing Foundation (CNCF). It has moved to https://github.com/theupdateframework/notary. Any downstream consumers should update their Go imports to use this new location, which will be the canonical location going forward.
We have moved the repo in GitHub, which will allow existing importers to continue using the old location via GitHub's redirect.
Declare your infrastructure: InfraKit, LinuxKit and MobyMoby Project
InfraKit is a toolkit for infrastructure orchestration. With an emphasis on immutable infrastructure, it breaks down infrastructure automation and management processes into small, pluggable components. These components work together to actively ensure the infrastructure state matches the user's specifications. InfraKit therefore provides infrastructure support for higher-level container orchestration systems and can make your infrastructure self-managing and self-healing.
This document provides an overview and agenda for the Moby Summit in Copenhagen in October 2017. The key points are:
- The summit will discuss collaboration between Docker and the Cloud Native Computing Foundation (CNCF) on projects like containerd, Kubernetes integration, LinuxKit and more.
- The agenda includes sessions on Infrakit, LinuxKit, containerd, security, serverless computing, networking and Birds of Feather breakout sessions on these topics.
- Speakers will discuss governance of the Moby project, runtimes like containerd and runc, and integrations between Docker and Kubernetes.
- The goal is to foster open collaboration and move major container projects forward as an open community.
The document proposes a new system called "entitlements" for defining high-level permissions and security profiles for containers. It aims to provide a better user experience than the current options like --cap-add and --privileged, by defining standardized permission profiles like "network.admin" that are attached securely to container images. The proposal outlines examples of how entitlement profiles would configure security settings and capabilities. It discusses next steps to implement entitlements in Moby and Kubernetes and opportunities for the community to provide feedback and contribute.
containerd is an industry-standard container runtime with an emphasis on simplicity, robustness and portability. It is available as a daemon for Linux and Windows, which can manage the complete container lifecycle of its host system: image transfer and storage, container execution and supervision, low-level storage and network attachments, etc.
containerd is designed to be embedded into a larger system, rather than being used directly by developers or end-users.
LinuxKit, a toolkit for building custom minimal, immutable Linux distributions.
Secure defaults without compromising usability
Everything is replaceable and customisable
Immutable infrastructure applied to building Linux distributions
Completely stateless, but persistent storage can be attached
Easy tooling, with easy iteration
Built with containers, for running containers
Designed for building and running clustered applications, including but not limited to container orchestration such as Docker or Kubernetes
Designed from the experience of building Docker Editions, but redesigned as a general-purpose toolkit
Designed to be managed by external tooling, such as Infrakit or similar tools
Includes a set of longer-term collaborative projects in various stages of development to innovate on kernel and userspace changes, particularly around security
LinuxKit, a toolkit for building custom minimal, immutable Linux distributions.
Secure defaults without compromising usability
Everything is replaceable and customisable
Immutable infrastructure applied to building Linux distributions
Completely stateless, but persistent storage can be attached
Easy tooling, with easy iteration
Built with containers, for running containers
Designed for building and running clustered applications, including but not limited to container orchestration such as Docker or Kubernetes
Designed from the experience of building Docker Editions, but redesigned as a general-purpose toolkit
Designed to be managed by external tooling, such as Infrakit or similar tools
Includes a set of longer-term collaborative projects in various stages of development to innovate on kernel and userspace changes, particularly around security
Using linuxKit to build custom rancherOS systems Moby Project
This document discusses modernizing RancherOS, a micro Linux distribution. It describes replacing System Docker with runC and Containerd to reduce size and improve performance. Through iterative changes like removing unused files, generating container specs, and customizing services, the initrd size was reduced from 245MB to 190MB and boot time from 30 seconds to 12 seconds. The final version can boot and serve HTTP requests within 7 seconds while maintaining compatibility with RancherOS.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
5. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
6. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
7. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
8. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
9. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
10. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
11. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
12. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
13. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
14. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ linux-headers
RUN apk add --no-cache git make
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
WORKDIR /go/src/github.com/moby/buildkit
COPY . .
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
RUN go build -o /usr/bin/buildd-standalone -tags standalone
./cmd/buildd
15. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
16. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
17. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
18. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
19. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
20. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
21. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
22. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
23. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
24. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
25. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
27. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
28. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
29. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
30. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
31. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
32. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
33. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
34. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
35. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
42. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
43. Dockerfile
FROM golang:1.8-alpine AS gobuild-base
RUN apk add --no-cache g++ git make linux-headers
FROM gobuild-base AS runc
ARG RUNC_VERSION=e775f0fba3ea329b8b766451c892c41a3d49594d
RUN git clone https://github.com/opencontainers/runc.git
&& cd "$GOPATH/src/github.com/opencontainers/runc"
&& git checkout -q "$RUNC_VERSION"
&& go build -o /usr/bin/runc ./
FROM gobuild-buildkit AS buildctl
RUN go build -o /usr/bin/buildctl ./cmd/buildctl
FROM gobuild-buildkit AS buildd-standalone
RUN go build -o /usr/bin/buildd -tags standalone ./cmd/buildd
FROM scratch
COPY --from=buildd-standalone /usr/bin/buildd /
COPY --from=buildctl /usr/bin/buildctl /
COPY --from=runc /usr/bin/runc /
56. LLB: under the hood
• Binary Protobuf
• Content checksum based references
• Unlimited inputs/outputs per vertex
Go client library:
https://godoc.org/github.com/moby/buildkit/client/llb