2024-03-04 10:44:38 +00:00
<!doctype html>
< html lang = "en" dir = "ltr" class = "docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-extensions/publish/index" data-has-hydrated = "false" >
< head >
< meta charset = "UTF-8" >
2024-08-14 11:49:56 +00:00
< meta name = "generator" content = "Docusaurus v3.5.2" >
2024-03-04 10:44:38 +00:00
< title data-rh = "true" > Publishing | Podman Desktop< / title > < meta data-rh = "true" name = "viewport" content = "width=device-width,initial-scale=1" > < meta data-rh = "true" name = "twitter:card" content = "summary_large_image" > < meta data-rh = "true" property = "og:image" content = "https://podman-desktop.io/img/banner_podman-desktop.png" > < meta data-rh = "true" name = "twitter:image" content = "https://podman-desktop.io/img/banner_podman-desktop.png" > < meta data-rh = "true" property = "og:url" content = "https://podman-desktop.io/docs/extensions/publish" > < meta data-rh = "true" property = "og:locale" content = "en" > < meta data-rh = "true" name = "docusaurus_locale" content = "en" > < meta data-rh = "true" name = "docsearch:language" content = "en" > < meta data-rh = "true" name = "docusaurus_version" content = "current" > < meta data-rh = "true" name = "docusaurus_tag" content = "docs-default-current" > < meta data-rh = "true" name = "docsearch:version" content = "current" > < meta data-rh = "true" name = "docsearch:docusaurus_tag" content = "docs-default-current" > < meta data-rh = "true" property = "og:title" content = "Publishing | Podman Desktop" > < meta data-rh = "true" name = "description" content = "Publishing a Podman Desktop extension" > < meta data-rh = "true" property = "og:description" content = "Publishing a Podman Desktop extension" > < meta data-rh = "true" name = "keywords" content = "podman desktop,extension,publishing" > < link data-rh = "true" rel = "icon" href = "/img/favicon.ico" > < link data-rh = "true" rel = "canonical" href = "https://podman-desktop.io/docs/extensions/publish" > < link data-rh = "true" rel = "alternate" href = "https://podman-desktop.io/docs/extensions/publish" hreflang = "en" > < link data-rh = "true" rel = "alternate" href = "https://podman-desktop.io/docs/extensions/publish" hreflang = "x-default" > < link data-rh = "true" rel = "preconnect" href = "https://MR01ANKQ9S-dsn.algolia.net" crossorigin = "anonymous" > < link rel = "alternate" type = "application/rss+xml" href = "/blog/rss.xml" title = "Podman Desktop RSS Feed" >
< link rel = "alternate" type = "application/atom+xml" href = "/blog/atom.xml" title = "Podman Desktop Atom Feed" >
< link rel = "alternate" type = "application/json" href = "/blog/feed.json" title = "Podman Desktop JSON Feed" >
< link rel = "search" type = "application/opensearchdescription+xml" title = "Podman Desktop" href = "/opensearch.xml" >
< link rel = "preconnect" href = "https://podman-desktop-website.goatcounter.com" >
2024-08-28 08:44:16 +00:00
< script async src = "//gc.zgo.at/count.js" data-goatcounter = "https://podman-desktop-website.goatcounter.com/count" > < / script > < link rel = "stylesheet" href = "/assets/css/styles.01082bb4.css" >
2024-08-28 09:33:24 +00:00
< script src = "/assets/js/runtime~main.41ce87c7.js" defer = "defer" > < / script >
< script src = "/assets/js/main.039a9aa3.js" defer = "defer" > < / script >
2024-03-04 10:44:38 +00:00
< / head >
< body class = "navigation-with-keyboard" >
2024-08-28 09:33:24 +00:00
< script > ! function ( ) { function t ( t ) { document . documentElement . setAttribute ( "data-theme" , t ) } var e = function ( ) { try { return new URLSearchParams ( window . location . search ) . get ( "docusaurus-theme" ) } catch ( t ) { } } ( ) || function ( ) { try { return window . localStorage . getItem ( "theme" ) } catch ( t ) { } } ( ) ; null !== e ? t ( e ) : window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ? t ( "dark" ) : window . matchMedia ( "(prefers-color-scheme: light)" ) . matches ? t ( "light" ) : t ( "dark" ) } ( ) , function ( ) { try { const c = new URLSearchParams ( window . location . search ) . entries ( ) ; for ( var [ t , e ] of c ) if ( t . startsWith ( "docusaurus-data-" ) ) { var a = t . replace ( "docusaurus-data-" , "data-" ) ; document . documentElement . setAttribute ( a , e ) } } catch ( t ) { } } ( ) < / script > < div id = "__docusaurus" > < div role = "region" aria-label = "Skip to main content" > < a class = "skipToContent_oPtH" href = "#__docusaurus_skipToContent_fallback" > Skip to main content< / a > < / div > < nav aria-label = "Main" class = "navbar navbar--fixed-top" > < div class = "navbar__inner" > < div class = "navbar__items" > < button aria-label = "Toggle navigation bar" aria-expanded = "false" class = "navbar__toggle clean-btn" type = "button" > < svg width = "30" height = "30" viewBox = "0 0 30 30" aria-hidden = "true" > < path stroke = "currentColor" stroke-linecap = "round" stroke-miterlimit = "10" stroke-width = "2" d = "M4 7h22M4 15h22M4 23h22" > < / path > < / svg > < / button > < a class = "navbar__brand" href = "/" > < div class = "navbar__logo" > < img src = "/img/logo.svg" alt = "Podman Desktop Logo" class = "themedComponent_siVc themedComponent--light_hHel" height = "56" > < img src = "/img/logo.svg" alt = "Podman Desktop Logo" class = "themedComponent_siVc themedComponent--dark_yETr" height = "56" > < / div > < b class = "navbar__title text--truncate" > podman desktop< / b > < / a > < a aria-current = "page" class = "navbar__item navbar__link navbar__link--active" href = "/docs/intro" > Documentation< / a > < a class = "navbar__item navbar__link" href = "/core-values" > Core Values< / a > < a class = "navbar__item navbar__link" href = "/features" > Features< / a > < a class = "navbar__item navbar__link" href = "/downloads" > Downloads< / a > < a class = "navbar__item navbar__link" href = "/extend" > Extend< / a > < a class = "navbar__item navbar__link" href = "/blog" > Blog< / a > < / div > < div class = "navbar__items navbar__items--right" > < a href = "https://github.com/containers/podman-desktop" target = "_blank" rel = "noopener noreferrer" class = "navbar__item navbar__link header-github-link" > < / a > < div class = "toggle_ki11 colorModeToggle_Hewu" > < button class = "clean-btn toggleButton_MMFG toggleButtonDisabled_Uw7m" type = "button" disabled = "" title = "Switch between dark and light mode (currently dark mode)" aria-label = "Switch between dark and light mode (currently dark mode)" aria-live = "polite" > < svg viewBox = "0 0 24 24" width = "24" height = "24" class = "lightToggleIcon_lgto" > < path fill = "currentColor" d = "M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z" > < / path > < / svg > < svg viewBox = "0 0 24 24" width = "24" height = "24" class = "darkToggleIcon_U96C" > < path fill = "currentColor" d = "M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3 . 86 , 0-7-3 . 14-7-7C5 , 9 . 07 , 6 . 81 , 6 . 55 , 9 . 37 , 5 . 51z M12 , 3c-4 . 97 , 0-9 , 4 . 03-9 , 9s4 . 03 , 9 , 9 , 9s9-4 . 03 , 9-9c0-0 . 46-0 . 04-0 . 92-0 . 1-1 . 36 c-0 . 98 , 1 . 37-2 . 58 , 2 . 26-4 . 4 , 2 . 26c-2 . 98 , 0
2024-03-04 10:44:38 +00:00
< p > To enable users to install your extension, consider publishing your extension to an Open Container Initiative (OCI) image registry.< / p >
2024-08-14 11:49:56 +00:00
< h4 class = "anchor anchorWithStickyNavbar_JmGV" id = "prerequisites" > Prerequisites< a href = "#prerequisites" class = "hash-link" aria-label = "Direct link to Prerequisites" title = "Direct link to Prerequisites" > < / a > < / h4 >
2024-03-04 10:44:38 +00:00
< ul >
< li >
< p > The extension builds successfully.
2024-05-03 14:21:14 +00:00
See < a href = "/docs/extensions/developing" > Developing a Podman Desktop extension< / a > .< / p >
2024-03-04 10:44:38 +00:00
< / li >
< li >
< p > All runtime dependencies are inside the final binary.< / p >
< / li >
< li >
< p > An OCI image registry to publish to, such as < code > quay.io/fbenoit/my-first-extension< / code > .< / p >
< / li >
< li >
< p > (Optional) The OCI image registry is public to enable anybody to fetch the image.< / p >
< / li >
< / ul >
2024-08-14 11:49:56 +00:00
< h4 class = "anchor anchorWithStickyNavbar_JmGV" id = "procedure" > Procedure< a href = "#procedure" class = "hash-link" aria-label = "Direct link to Procedure" title = "Direct link to Procedure" > < / a > < / h4 >
2024-03-04 10:44:38 +00:00
< ol >
< li >
< p > Create and edit a < code > Containerfile< / code > file.< / p >
< / li >
< li >
< p > Use a scratch image.
The extension requires no runtime:< / p >
< div class = "language-dockerfile codeBlockContainer_mQmQ theme-code-block" style = "--prism-color:#F8F8F2;--prism-background-color:#282A36" > < div class = "codeBlockContent_D5yF" > < pre tabindex = "0" class = "prism-code language-dockerfile codeBlock_RMoD thin-scrollbar" style = "color:#F8F8F2;background-color:#282A36" > < code class = "codeBlockLines_AclH" > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token instruction keyword" style = "color:rgb(189, 147, 249);font-style:italic" > FROM< / span > < span class = "token instruction" > scratch< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_aaMX" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_z5j7" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_FoOz" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_L0B6" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< / li >
< li >
< p > Apply mandatory Podman Desktop metadata on the < code > OCI< / code > image:< / p >
< div class = "language-dockerfile codeBlockContainer_mQmQ theme-code-block" style = "--prism-color:#F8F8F2;--prism-background-color:#282A36" > < div class = "codeBlockContent_D5yF" > < pre tabindex = "0" class = "prism-code language-dockerfile codeBlock_RMoD thin-scrollbar" style = "color:#F8F8F2;background-color:#282A36" > < code class = "codeBlockLines_AclH" > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token instruction keyword" style = "color:rgb(189, 147, 249);font-style:italic" > LABEL< / span > < span class = "token instruction" > org.opencontainers.image.title=< / span > < span class = "token instruction string" style = "color:rgb(255, 121, 198)" > " My first extension" < / span > < span class = "token instruction" > < / span > < span class = "token instruction operator" > \< / span > < span class = "token instruction" > < / span > < br > < / span > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token instruction" > org.opencontainers.image.description=< / span > < span class = "token instruction string" style = "color:rgb(255, 121, 198)" > " Example of extension" < / span > < span class = "token instruction" > < / span > < span class = "token instruction operator" > \< / span > < span class = "token instruction" > < / span > < br > < / span > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token instruction" > org.opencontainers.image.vendor=< / span > < span class = "token instruction string" style = "color:rgb(255, 121, 198)" > " podman-desktop" < / span > < span class = "token instruction" > < / span > < span class = "token instruction operator" > \< / span > < span class = "token instruction" > < / span > < br > < / span > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token instruction" > io.podman-desktop.api.version=< / span > < span class = "token instruction string" style = "color:rgb(255, 121, 198)" > " > = 0.12.0" < / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_aaMX" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_z5j7" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_FoOz" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_L0B6" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< p > < code > io.podman-desktop.api.version=" > = 0.12.0" < / code > sets the minimal Podman Desktop version that the extension requires to run.< / p >
< / li >
< li >
< p > Copy the extension assembly, including the metadata, icon, and production binary, to the < code > /extension< / code > folder inside the image:< / p >
< div class = "language-dockerfile codeBlockContainer_mQmQ theme-code-block" style = "--prism-color:#F8F8F2;--prism-background-color:#282A36" > < div class = "codeBlockContent_D5yF" > < pre tabindex = "0" class = "prism-code language-dockerfile codeBlock_RMoD thin-scrollbar" style = "color:#F8F8F2;background-color:#282A36" > < code class = "codeBlockLines_AclH" > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token instruction keyword" style = "color:rgb(189, 147, 249);font-style:italic" > COPY< / span > < span class = "token instruction" > package.json /extension/< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token plain" > < / span > < span class = "token instruction keyword" style = "color:rgb(189, 147, 249);font-style:italic" > COPY< / span > < span class = "token instruction" > icon.png /extension/< / span > < span class = "token plain" > < / span > < br > < / span > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token plain" > < / span > < span class = "token instruction keyword" style = "color:rgb(189, 147, 249);font-style:italic" > COPY< / span > < span class = "token instruction" > dist /extension/dist< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_aaMX" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_z5j7" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_FoOz" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_L0B6" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< / li >
< li >
< p > Build an image:< / p >
< div class = "language-shell-session codeBlockContainer_mQmQ theme-code-block" style = "--prism-color:#F8F8F2;--prism-background-color:#282A36" > < div class = "codeBlockContent_D5yF" > < pre tabindex = "0" class = "prism-code language-shell-session codeBlock_RMoD thin-scrollbar" style = "color:#F8F8F2;background-color:#282A36" > < code class = "codeBlockLines_AclH" > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token command shell-symbol important" > $< / span > < span class = "token command" > < / span > < span class = "token command bash language-bash" > podman build -t quay.io/fbenoit/my-first-extension .< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_aaMX" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_z5j7" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_FoOz" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_L0B6" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< / li >
< li >
< p > Push the image and manifest to the OCI image registry:< / p >
< div class = "language-shell-session codeBlockContainer_mQmQ theme-code-block" style = "--prism-color:#F8F8F2;--prism-background-color:#282A36" > < div class = "codeBlockContent_D5yF" > < pre tabindex = "0" class = "prism-code language-shell-session codeBlock_RMoD thin-scrollbar" style = "color:#F8F8F2;background-color:#282A36" > < code class = "codeBlockLines_AclH" > < span class = "token-line" style = "color:#F8F8F2" > < span class = "token command shell-symbol important" > $< / span > < span class = "token command" > < / span > < span class = "token command bash language-bash" > podman push quay.io/fbenoit/my-first-extension< / span > < br > < / span > < / code > < / pre > < div class = "buttonGroup_aaMX" > < button type = "button" aria-label = "Copy code to clipboard" title = "Copy" class = "clean-btn" > < span class = "copyButtonIcons_z5j7" aria-hidden = "true" > < svg viewBox = "0 0 24 24" class = "copyButtonIcon_FoOz" > < path fill = "currentColor" d = "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" > < / path > < / svg > < svg viewBox = "0 0 24 24" class = "copyButtonSuccessIcon_L0B6" > < path fill = "currentColor" d = "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" > < / path > < / svg > < / span > < / button > < / div > < / div > < / div >
< / li >
< / ol >
2024-08-14 11:49:56 +00:00
< h4 class = "anchor anchorWithStickyNavbar_JmGV" id = "adding-platform-specific-files" > Adding platform-specific files< a href = "#adding-platform-specific-files" class = "hash-link" aria-label = "Direct link to Adding platform-specific files" title = "Direct link to Adding platform-specific files" > < / a > < / h4 >
2024-03-04 10:44:38 +00:00
< p > You may want to add a system-native executable to the extension' s image, so the extension can execute it.< / p >
< p > In contrast to the extension' s code (transpiled into JavaScript) which is executable in any platform, you will
need to prepare several OCI images, one for each platform (OS and architecture) you want the extension to support.< / p >
< p > For this, you will need to create:< / p >
< ul >
< li > one Containerfile for each platform (or a common Containerfile with parameters), to create
one image per platform,< / li >
< li > one manifest, to reference all images created at the previous step.< / li >
< / ul >
< p > The URL you need to share with the users to install the extension is the URL of the manifest.< / p >
< p > If the manifest does not contain an image for the platform of the user, Podman Desktop will install the
image for Linux (amd64 or arm64 depending on the architecture of the user' s platform).< / p >
< p > You can leverage the < a href = "https://github.com/redhat-actions/buildah-build" target = "_blank" rel = "noopener noreferrer" > Buildah Build action< / a > to build this manifest.< / p >
2024-08-14 11:49:56 +00:00
< h4 class = "anchor anchorWithStickyNavbar_JmGV" id = "next-steps" > Next steps< a href = "#next-steps" class = "hash-link" aria-label = "Direct link to Next steps" title = "Direct link to Next steps" > < / a > < / h4 >
2024-03-04 10:44:38 +00:00
< ul >
< li > < a href = "/docs/extensions/install" > Installing a Podman Desktop extension< / a > < / li >
2024-05-28 11:53:36 +00:00
< / ul > < / div > < footer class = "theme-doc-footer docusaurus-mt-lg" > < div class = "row margin-top--sm theme-doc-footer-tags-row" > < div class = "col" > < b > Tags:< / b > < ul class = "tags_Ow0B padding--none margin-left--sm" > < li class = "tag_DFxh" > < a class = "tag_otG2 tagRegular_s0E1" href = "/docs/tags/podman-desktop" > podman-desktop< / a > < / li > < li class = "tag_DFxh" > < a class = "tag_otG2 tagRegular_s0E1" href = "/docs/tags/extension" > extension< / a > < / li > < li class = "tag_DFxh" > < a class = "tag_otG2 tagRegular_s0E1" href = "/docs/tags/publishing" > publishing< / a > < / li > < / ul > < / div > < / div > < div class = "row margin-top--sm theme-doc-footer-edit-meta-row" > < div class = "col" > < a href = "https://github.com/containers/podman-desktop/tree/main/website/docs/extensions/publish/index.md" target = "_blank" rel = "noopener noreferrer" class = "theme-edit-this-page" > < svg fill = "currentColor" height = "20" width = "20" viewBox = "0 0 40 40" class = "iconEdit_bHB7" aria-hidden = "true" > < g > < path d = "m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z" > < / path > < / g > < / svg > Edit this page< / a > < / div > < div class = "col lastUpdated_ydrU" > < / div > < / div > < / footer > < / article > < nav class = "pagination-nav docusaurus-mt-lg" aria-label = "Docs pages" > < a class = "pagination-nav__link pagination-nav__link--prev" href = "/docs/extensions/api" > < div class = "pagination-nav__sublabel" > Previous< / div > < div class = "pagination-nav__label" > API Reference< / div > < / a > < a class = "pagination-nav__link pagination-nav__link--next" href = "/docs/troubleshooting" > < div class = "pagination-nav__sublabel" > Next< / div > < div class = "pagination-nav__label" > Troubleshooting< / div > < / a > < / nav > < / div > < / div > < div class = "col col--3" > < div class = "tableOfContents_XG6w thin-scrollbar theme-doc-toc-desktop" > < / div > < / div > < / div > < / div > < / main > < / div > < / div > < / div > < footer class = "footer" > < div class = "container container-fluid" > < div class = "row footer__links" > < div class = "col footer__col" > < div class = "footer__title" > Documentation< / div > < ul class = "footer__items clean-list" > < li class = "footer__item" > < a class = "footer__link-item" href = "/docs/installation" > Installing Podman Desktop< / a > < / li > < li class = "footer__item" > < a class = "footer__link-item" href = "/docs/migrating-from-docker" > Migrating from Docker< / a > < / li > < li class = "footer__item" > < a class = "footer__link-item" href = "/docs/kubernetes" > Working with Kubernetes< / a > < / li > < li class = "footer__item" > < a class = "footer__link-item" href = "/docs/troubleshooting" > Troubleshooting< / a > < / li > < / ul > < / div > < div class = "col footer__col" > < div class = "footer__title" > Links< / div > < ul class = "footer__items clean-list" > < li class = "footer__item" > < a href = "https://github.com/containers/podman-desktop" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > GitHub< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPrP" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li class = "footer__item" > < a href = "https://discord.com/invite/x5GzFF6QH4" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Chat (bridged): #podman-desktop on Discord< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPrP" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li class = "footer__item" > < a href = "https://github.com/containers/podman-desktop#communication" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Other ways to Communicate< svg width = "13.5" height = "13.5" aria-hidden = "true" viewBox = "0 0 24 24" class = "iconExternalLink_nPrP" > < path fill = "currentColor" d = "M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z" > < / path > < / svg > < / a > < / li > < li class = "footer__item" > < a href = "https://github.com/orgs/containers/projects/4/views/8" target = "_blank" rel = "noopener noreferrer" class = "footer__link-item" > Current Sprint< svg width = "13.5" height = "13.5" aria-hidden = "true"
2024-03-04 10:44:38 +00:00
< / body >
< / html >