<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ajeet Singh Raina on Medium]]></title>
        <description><![CDATA[Stories by Ajeet Singh Raina on Medium]]></description>
        <link>https://medium.com/@ajeetraina?source=rss-8489583a2023------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*LDyC-Rd6bxeSBc_W0tqMhA.jpeg</url>
            <title>Stories by Ajeet Singh Raina on Medium</title>
            <link>https://medium.com/@ajeetraina?source=rss-8489583a2023------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 08 Jul 2026 16:26:20 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@ajeetraina/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Exploring Singapore’s Tech Landscape at GovTech STACK Conference 2024]]></title>
            <link>https://ajeetraina.medium.com/exploring-singapores-tech-landscape-at-govtech-stack-conference-2024-31a0d6f200ad?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/31a0d6f200ad</guid>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 13 Nov 2024 11:27:31 GMT</pubDate>
            <atom:updated>2024-11-13T11:27:31.429Z</atom:updated>
            <content:encoded><![CDATA[<p>I recently visited Singapore for the first time, and it was an incredible experience. I didn’t know much about the country, its developer community, or the AI landscape there. However I was invited to deliver a 3-hour workshop on Docker 101 on Day 0 of the GovTech STACK Conference 2024, so I got to dive right into Singapore’s thriving tech scene.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/982/0*jHyQFnFaYv8H4y7g" /></figure><p>Delivered a 3-hour Docker 101 workshop on container-supported development workflow</p><h3>GovTech STACK Conference 2024: A Unique Developer Event</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*e5LTUBSw3tCujuK9" /></figure><p><a href="https://www.developer.tech.gov.sg/">GovTech Singapore’s STACK Developer Conference</a> is unlike any other developer event I’ve attended. It’s one of Singapore’s largest tech conferences and one of the few government-led developer events worldwide. This conference showcases Singapore’s digital capabilities and highlights the pivotal role of developers in Singapore’s journey toward becoming a digital government.</p><h3>Singapore’s Vision for a Digital Government</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mnp2BPsBE4Xgdh4P" /></figure><p>The STACK 2024 keynote speakers set the stage by emphasizing the critical role developers play in building Singapore’s digital government. This year, Singapore ranked third globally in the United Nations E-Government Survey, a testament to its commitment to digital transformation. The conference also provided a sneak peek into Singapore’s Smart Nation 2.0 vision. This initiative focuses on creating a digitally trusted society, boosting economic growth, and building stronger communities, all while tackling new online challenges.</p><h3>Pioneering AI in Government</h3><p>Another exciting theme at STACK 2024 was Singapore’s push to integrate AI into government functions. In his opening speech, GovTech Singapore’s Chief Executive, Goh Wei Boon, discussed their ambitious plans to introduce AI-powered code assistants for government developers, aimed at boosting productivity. This aligns with recent findings from Stack Overflow’s 2024 survey, which shows 72% of developers view AI coding tools positively and don’t see them as a threat to their jobs.</p><h3>The Singapore Tech Stack: Building Fast, Building Smart</h3><p>One of the standout features of Singapore’s digital government strategy is the Singapore Tech Stack — a set of reusable components that helps developers build applications quickly and efficiently. A great example is MyInfo, a secure service that allows residents to access and manage personal data and auto-fill forms. Thanks to the Tech Stack, MyInfo was developed in just four months. Another example is GovWallet, which provides a seamless experience for residents to access government payouts across different platforms.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Pp292kAQpUhsO-OJ" /></figure><p>At the heart of this tech ecosystem is the Government on Commercial Cloud (GCC), which enables the government to adapt and scale rapidly. Singapore has already migrated 80% of eligible systems to GCC, a remarkable achievement that makes it one of the most successful government cloud migrations globally.</p><h3>Exploring GovTech’s Product Booths</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QAcPOMcJzLLMWGJn" /></figure><p>After my Docker workshop for around 40 attendees, I had the chance to explore some fascinating booths showcasing GovTech’s products. Here are some of the highlights:</p><h3>Government on Commerical Cloud</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HVZE8GbM-qUvMviW" /></figure><p>GCC is a platform that helps Singapore government agencies quickly and securely adopt commercial cloud solutions like AWS, Microsoft Azure, and Google Cloud. GCC 2.0 has streamlined onboarding that lets users get started within an hour through their TechPass account.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-T-8t5Ve1FvZkz5Q" /></figure><p>GCC 2.0 adopts a Policy-as-Code (PaC) approach, ensuring that all resources undergo automatic compliance checks by default. Compliance checks are performed in real-time to identify potential security vulnerabilities as soon as they arise.</p><p>This version of GCC emphasizes a “light-touch” approach for cloud-native solutions, using native tools like AWS Config to maintain continuous compliance. By embedding policies as code, GCC 2.0 minimizes latency in security assessments, allowing faster evaluation of cloud workloads’ compliance states and early detection of configuration changes. This proactive approach supports secure and efficient cloud operations for government agencies.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jYlJe-CAepDHK_1H" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*8CnbDLmFZ-6ldbYZ" /></figure><h3>AISAY</h3><p>AISAY is an AI document reader capable of extracting information from various document types — handwritten notes, printed articles, and more. Unlike traditional OCR, AISAY handles unstructured data, multilingual text, and images, providing structured responses for documents from local entities.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*pp8pAtf3EYNLwa_G" /></figure><h3>GovText</h3><p>GovText is a text analytics tool that uses NLP to help government agencies analyze and interpret unstructured data, improving data processing and operational efficiency. The GovText Web Portal offers two types of summarisation:</p><ul><li>Abstractive summarization (Normal mode) — The key points of an article are paraphrased into a short and coherent paragraph, by a language model pre-trained on news articles and open datasets.</li><li>Extractive summarization (Quick mode) — The most important sentences from an article are compiled to form a summary. While this approach does not involve paraphrasing, it offers faster processing speed.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rtFQ3dLOgtVJgVbQ" /></figure><h3>CloudSCAPE</h3><p>This platform helps government agencies maintain security compliance for systems hosted on GCC. It includes automatic scans to alert administrators when security baselines aren’t met.</p><p>With over 70 agencies onboarded, this platform provides automated daily scanning of GCC 2.0 cloud resources for compliance with Singapore Government <a href="https://www.developer.tech.gov.sg/guidelines/standards-and-best-practices/instruction-manual-for-ict-ss-management.html">IM8</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*R8YYKIUz4xfh70li" /></figure><h3>CStack</h3><p>CStack integrates with agile development tools to make it easier for teams to modernize applications without worrying about infrastructure complexities. It supports deployment on both internet and intranet environments.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YS7KANlsh2PAkRMj" /></figure><p>CStack meets the Singapore Government’s Application Infrastructure Architecture Standard (AIAS) and <a href="https://www.developer.tech.gov.sg/guidelines/standards-and-best-practices/instruction-manual-for-ict-ss-management.html">IM8</a> requirements. It utilises a default tiered architecture (web, app, data) and adheres to relevant policies for infrastructure, applications, and containers. By using CStack, you will streamline compliance audits for these areas and save time in the process.</p><p>With CStack, you can deploy your applications on either the internet or intranet. Using CStack GEN routable clusters, you can enable end users to access your applications by whitelisting your egress firewalls to the platform ingress.</p><h3>Sentinel</h3><p>I simply love this booth. Sentinel is a collection of LLM guardrail filters to detect unsafe or irrelevant content. With Sentinel, developers can block or adjust such content before it reaches the LLM or is returned to the users.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YjdqmkUhZ-E5t2Xv" /></figure><h3>Docker DevTools : GenAI Meetup at AWS Office</h3><p>This event marked a significant milestone for me as it was my first time conducting an event in Singapore. Having no prior knowledge of the local developer community or the AI landscape in the region, I was eager to dive in and connect with fellow tech enthusiasts.</p><p>Thanks to <a href="https://www.linkedin.com/company/amazon-web-services/">Amazon Web Services (AWS)</a> for providing such a wonderful venue, we were able to host a highly engaging and interactive session. The event brought together developers and AI experts to explore the latest innovations in generative AI, Docker, and cloud technologies.</p><p><a href="https://www.linkedin.com/in/chomchanatrevai/">Chomchana (Chom) Trevai, Ph.D.</a> kickstarted the event and talked about Building Serverless Generative AI application on AWS.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Gv-b-YbgQbBrbgCF" /></figure><p>Next, I delivered a talk on Build and Deploy AI-powered Apps locally using GenAI Stack. Showcased a couple of demo on building a Streamlit application using LangChain, Neo4j and Ollama.</p><p>The next speaker, <a href="https://www.linkedin.com/in/elliott-chong/">Elliott Chong</a> , an AI/ML Hackathon winner talked about the recent enhancement with Dionysus — A Powerful Platform for Streamlined Developer Collaboration.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*h2Qm8qt5TPUa3Jrw" /></figure><p>Next, <a href="https://www.linkedin.com/in/hiimivantang/">Ivan Tang</a> delivered his talk on Milvus and Zilliz Cloud. Milvus is a cloud-native vector database for next-generation AI applications.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BOZdvK4eizMnRKlF" /></figure><p>Finally, Michael Yuan joined us for US virtually and talked for 25 min on a title “Portable AI application in Docker across CPUs and GPU”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*CHF4sjkmsGWY4p4u" /></figure><p>It was an exciting experience to see so many enthusiastic participants come together, share ideas, and learn about building serverless AI applications, deploying AI-powered apps locally, and exploring the future of AI with Docker. The diverse discussions, coupled with valuable insights from industry leaders, made this event truly special.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*TeQQFVFhGE4Mbsa3" /></figure><p>I’m grateful for the opportunity to be part of this vibrant tech community in Singapore, and I look forward to more such events where we can continue to learn, collaborate, and innovate together!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*WGCFXLFBFIoGGRQX" /></figure><h3>A Memorable Conference Experience</h3><p><a href="https://www.linkedin.com/company/govtech-singapore/">GovTech Singapore</a> STACK 2024 was a surge of new knowledge, networking, and exploration. From the fourteen product showcases and over 40 lightning talks to keynotes and panel discussions, it was packed with opportunities to learn and connect. I left Singapore with a deeper understanding of its tech landscape and a strong appreciation for the innovative work happening in the government sector.</p><p>If you ever get the chance to attend STACK, don’t miss it! It’s an event that truly brings together technology, innovation, and community in a way that’s uniquely Singapore.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=31a0d6f200ad" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing Collabnix Connect — A DevOps Community Hub for Learning and Collaboration]]></title>
            <link>https://ajeetraina.medium.com/introducing-collabnix-connect-a-devops-community-hub-for-learning-and-collaboration-b21548a6c171?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/b21548a6c171</guid>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[community]]></category>
            <category><![CDATA[docke]]></category>
            <category><![CDATA[collabnix]]></category>
            <category><![CDATA[meetup]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 18 Sep 2024 02:40:37 GMT</pubDate>
            <atom:updated>2024-09-18T02:40:37.619Z</atom:updated>
            <content:encoded><![CDATA[<h3>Introducing Collabnix Connect — A DevOps Community Hub for Learning and Collaboration</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EQ_17K4hVEIJjbX5" /></figure><p>Welcome to <a href="https://connect.collabnix.com/">Collabnix Connect</a>, a platform designed to bring DevOps professionals together in one place to share knowledge, collaborate on projects, and grow through tech meetups. We’re super thrilled to launch this community-driven hub, built with the goal of fostering learning, networking, and support within the global DevOps community.</p><h3>What is Collabnix Connect?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*2_2UM8L-6vgCfUVv" /></figure><p>Collabnix Connect is a platform where DevOps practitioners, engineers, and enthusiasts can:</p><ul><li><strong>Share their knowledge</strong>: Post articles, tutorials, and insights on the latest DevOps tools, trends, and best practices.</li><li><strong>Join technical Meetup groups</strong>: Find and join technical communities based on your interests, participate in meetups, and engage with like-minded individuals.</li><li><strong>Stay updated</strong>: Share your updates on projects, events, or any significant learnings to keep the community informed and inspired.</li><li><strong>Collaborate and grow</strong>: Whether you’re new to DevOps or a seasoned expert, Collabnix Connect encourages open discussions, collaborations, and contributions.</li></ul><h3>Why Collabnix Connect?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*xhdseuAoJyKgZnSU" /></figure><p>As DevOps continues to evolve and shape the future of software development and IT operations, the need for a dedicated platform to bring professionals together has never been greater. Collabnix Connect aims to be that bridge — helping you find the right resources, the right people, and the right opportunities to advance your skills and knowledge.</p><h3>Here’s what you can expect from our platform:</h3><ul><li><strong>Technical Tutorials</strong>: In-depth guides on popular DevOps tools like Docker, Kubernetes, CI/CD pipelines, and more.</li><li><strong>Case Studies</strong>: Real-world stories and best practices from DevOps teams across the globe.</li><li><strong>Event Highlights</strong>: Recaps from DevOps meetups and conferences, with takeaways and insights from industry leaders.</li><li><strong>Tool Reviews</strong>: Unbiased reviews of the latest DevOps tools to help you make informed decisions.</li><li><strong>Community Stories</strong>: Hear from other DevOps professionals about their journey, challenges, and successes.</li></ul><h3>Join Us on This Journey</h3><p>We’re just getting started, and we want YOU to be part of this community. Here’s how you can get involved:</p><ul><li><strong>Subscribe</strong>: Stay up-to-date with our latest blog posts, news, and events.</li><li><strong>Contribute</strong>: We’re always looking for guest contributors! If you have knowledge to share or a story to tell, reach out to us to feature your post on Collabnix Connect.</li><li><strong>Engage</strong>: Join discussions, participate in meetups, and share your feedback on how we can improve and grow this community.</li></ul><h3>A Call to Action for DevOps Professionals</h3><p>Whether you’re a developer, engineer, architect, or just someone passionate about DevOps, Collabnix Connect is your space to explore, learn, and connect. Our mission is simple: to build a thriving community where learning never stops, and collaboration leads to innovation.</p><p>Thank you for being part of this journey with us. We look forward to sharing, learning, and growing with you. Stay tuned for exciting updates, insightful content, and much more!</p><p>Let’s build something amazing together!<br>Visit the platform: <a href="https://connect.collabnix.com/">https://connect.collabnix.com</a></p><p>Follow us on Social Media:</p><p>Twitter: <a href="https://x.com/collabnix">https://x.com/collabnix</a><br>LinkedIn: <a href="https://www.linkedin.com/company/collabnix/">https://www.linkedin.com/company/collabnix/</a><br>GitHub: <a href="https://github.com/collabnix">https://github.com/collabnix</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b21548a6c171" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is Docker Build Check and what problem does it solve?]]></title>
            <link>https://ajeetraina.medium.com/what-is-docker-build-check-and-what-problem-does-it-solve-fe42557c8b4d?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/fe42557c8b4d</guid>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[developers-update]]></category>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[containers]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 18 Sep 2024 02:38:41 GMT</pubDate>
            <atom:updated>2024-09-18T02:38:41.960Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*nYe3cIfXmktW9BFY.png" /></figure><p><a href="https://docker.com/">Docker</a> has become an indispensable tool for developers to package and deploy applications. A crucial aspect of efficient Docker development is ensuring the correctness of your Dockerfile. This is where Docker Build Checks come into play.</p><p>Typically, when you run a build, Docker executes the build steps in your Dockerfile and build options as specified. With build checks, rather than executing the build steps, Docker checks the Dockerfile and options you provide and reports any issues it detects.</p><h3>Is Docker Build Check a new feature?</h3><p>Yes. Docker Build Checks is a feature introduced in Dockerfile 1.8 that allows you to validate your build configuration without actually executing the build. By running docker build --check ., you can identify potential issues in your Dockerfile early in the development process, saving time and effort.</p><h3>How does it work?</h3><p>Checks run as a build invocation, but instead of producing a build output, it performs a series of checks to validate that your build doesn’t violate any of the rules.</p><p>You can use the --check flag with the docker build or docker buildx build command to run the checks.</p><p>For Example,</p><pre>$ docker build --check .</pre><p>This command will run the checks and report any issues it finds without executing the build steps. If there are any issues, they will be reported in the output.</p><h3>Sample App: Flask + Python</h3><p>The provided Python script creates a basic web application that displays the number of times it has been accessed. It utilizes Flask for the web framework and Redis to store the visit count.</p><h3>How it Works?</h3><p>When someone accesses the root URL (e.g., <a href="http://localhost:5000/">http://localhost:5000</a>), the hello function is triggered. The function increments the ‘hits’ counter in Redis. It then retrieves the current value of ‘hits’ and displays it in a user-friendly message.</p><h3>File: app.py</h3><pre>cat app.py <br>from flask import Flask<br>from redis import Redis<br>import os<br>import socket</pre><pre>app = Flask(__name__)<br>redis = Redis(host=os.environ.get(&#39;REDIS_HOST&#39;, &#39;127.0.0.1&#39;), port=6379)<br></pre><pre>@app.route(&#39;/&#39;)<br>def hello():<br>    redis.incr(&#39;hits&#39;)<br>    return f&quot;This webpage has viewed {redis.get(&#39;hits&#39;).decode(&#39;utf-8&#39;)} times and hostname is {socket.gethostname()}.\n&quot;</pre><p>Let’s create a Dockerfile for this app.py</p><pre>FROM python:3.11-slim</pre><pre>RUN pip3 install flask redis &amp;&amp; \<br>    groupadd -r demouser &amp;&amp; useradd -r -g demouser demouser &amp;&amp; \<br>    mkdir /src &amp;&amp; \<br>    chown -R demouser:demouser /src</pre><pre>USER demouser</pre><pre>COPY app.py /src/app.py</pre><pre>WORKDIR src</pre><pre>ENV FLASK_APP=app.py REDIS_HOST=redis</pre><pre>EXPOSE 5000</pre><pre>CMD [&quot;flask&quot;, &quot;run&quot;, &quot;-h&quot;, &quot;0.0.0.0&quot;]</pre><p>Let’s try to run docker build --check</p><pre>[internal] load build definition from Dockerfile                            0.0s<br> =&gt; =&gt; transferring dockerfile: 398B                                            0.0s<br> =&gt; [internal] load metadata for docker.io/library/python:3.11-slim             2.8s<br> =&gt; [auth] library/python:pull token for registry-1.docker.io                   0.0s<br> =&gt; [internal] load .dockerignore                                               0.0s<br> =&gt; =&gt; transferring context: 2B                                                 0.0s</pre><pre>WARNING: WorkdirRelativePath - <a href="https://docs.docker.com/go/dockerfile/rule/workdir-relative-path/">https://docs.docker.com/go/dockerfile/rule/workdir-relative-path/</a><br>Relative workdir &quot;src&quot; can have unexpected results if the base image changes<br>Dockerfile:12<br>--------------------<br>  10 |     COPY app.py /src/app.py<br>  11 |     <br>  12 | &gt;&gt;&gt; WORKDIR src<br>  13 |     <br>  14 |     ENV FLASK_APP=app.py REDIS_HOST=redis<br>--------------------</pre><p>The issue is clearly related to <a href="https://docs.docker.com/reference/build-checks/workdir-relative-path/">https://docs.docker.com/reference/build-checks/workdir-relative-path/</a></p><p>Modify the following line in your Dockerfile to:</p><pre>WORKDIR /src</pre><pre>docker build --check .<br>[+] Building 3.2s (4/4) FINISHED                                docker:desktop-linux<br> =&gt; [internal] load build definition from Dockerfile                            0.0s<br> =&gt; =&gt; transferring dockerfile: 399B                                            0.0s<br> =&gt; [internal] load metadata for docker.io/library/python:3.11-slim             3.1s<br> =&gt; [auth] library/python:pull token for registry-1.docker.io                   0.0s<br> =&gt; [internal] load .dockerignore                                               0.0s<br> =&gt; =&gt; transferring context: 2B                                                 0.0s<br>Check complete, no warnings found.</pre><p>BuildKit has built-in support for analyzing your build configuration based on a set of pre-defined rules for enforcing Dockerfile and building best practices. Adhering to these rules helps avoid errors and ensures good readability of your Dockerfile.</p><h3>Common Dockerfile Warnings</h3><p>Warning CodeDescription<a href="https://docs.docker.com/reference/build-checks/stage-name-casing/">stage-name-casing</a>Stage names should be lowercase<a href="https://docs.docker.com/reference/build-checks/stage-name-casing/">from-as-casing</a>The ‘as’ keyword should match the case of the ‘from’ keyword<a href="https://docs.docker.com/reference/build-checks/no-empty-continuation/">no-empty-continuation</a>Empty continuation lines will become errors in a future release<a href="https://docs.docker.com/reference/build-checks/consistent-instruction-casing/">consistent-instruction-casing</a>All commands within the Dockerfile should use the same casing (either upper or lower)<a href="https://docs.docker.com/reference/build-checks/duplicate-stage-name/">duplicate-stage-name</a>Stage names should be unique<a href="https://docs.docker.com/reference/build-checks/reserved-stage-name/">reserved-stage-name</a>Reserved words should not be used as stage names<a href="https://docs.docker.com/reference/build-checks/json-args-recommended/">json-args-recommended</a>JSON arguments recommended for ENTRYPOINT/CMD to prevent unintended behavior related to OS signals<a href="https://docs.docker.com/reference/build-checks/maintainer-deprecated/">maintainer-deprecated</a>The MAINTAINER instruction is deprecated, use a label instead to define an image author</p><h3>References:</h3><ul><li><a href="https://docs.docker.com/reference/build-checks/">Docker Build Checks</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fe42557c8b4d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[DevTools Day Singapore: GenAI Meetup]]></title>
            <link>https://ajeetraina.medium.com/devtools-day-singapore-genai-meetup-031bf81fd19f?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/031bf81fd19f</guid>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[singapore]]></category>
            <category><![CDATA[genai]]></category>
            <category><![CDATA[meetup]]></category>
            <category><![CDATA[docker]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 18 Sep 2024 02:37:08 GMT</pubDate>
            <atom:updated>2024-09-18T02:37:08.457Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*4MK-2dHng_cyFSga" /></figure><p>Are you ready to revolutionize your applications with the power of Large Language Models (LLMs)? Join us for the Gen-AI Stack Meetup in Singapore, where we’ll explore the cutting-edge intersection of LLMs, graph databases, and Docker.</p><p>This half-day event will delve deep into the practical applications of the Gen-AI Stack, offering insights, hands-on workshops, and networking opportunities. Whether you’re a seasoned developer or just starting your AI journey, there’s something for everyone.</p><h3>Key topics to be covered:</h3><ul><li>Integrating LLMs with the Gen-AI stack for innovative applications</li><li>Fine-tuning LLMs for specific industry needs</li><li>Ethical considerations in LLM development</li><li>Real-world LLM use cases and success stories</li><li>MLOps best practices for deploying and managing LLM-powered applications</li></ul><p>Share your expertise! We’re inviting talks from experts in the field. <a href="https://forms.gle/bqfZ8DJDokRwMKn48">Submit your proposal </a>by October 27th and share your knowledge with the community.</p><h3>Event Details:</h3><ul><li>Date: November 8, 2024</li><li>Time: 1:00 PM to 5:00 PM</li><li>Location: Amazon Web Services Singapore Private Limited, 23 Church Street, Capital Square, Unit 10–01 to 10–04, 049481, Singapore</li></ul><p>Don’t miss this opportunity to learn from industry leaders, network with fellow AI enthusiasts, and explore the future of AI development.</p><p><a href="https://www.meetup.com/docker-singapore/events/302802831/">Register now</a> and secure your spot!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=031bf81fd19f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Rise of AI in Software Development: Key Insights from the 2024 Docker AI Trends Report]]></title>
            <link>https://ajeetraina.medium.com/the-rise-of-ai-in-software-development-key-insights-from-the-2024-docker-ai-trends-report-deefbc711917?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/deefbc711917</guid>
            <category><![CDATA[surveys]]></category>
            <category><![CDATA[cloud-native]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[containers]]></category>
            <category><![CDATA[docker]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 18 Sep 2024 02:35:02 GMT</pubDate>
            <atom:updated>2024-09-18T02:35:02.640Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*VWQOz3h6MVRp7LcS.png" /></figure><p>The software development landscape is undergoing a dramatic transformation, fueled by the integration of artificial intelligence (AI) and machine learning (ML). Docker, a pivotal player in the containerization ecosystem, recently released its 2024 AI Trends Report, shedding light on the increasing role AI plays in shaping the future of development.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*oJN-8RXlIi6arVX4.png" /></figure><p>Based on a survey of over 1,300 developers, the report provides invaluable insights into how AI is being used in development workflows, the most important AI trends, and the evolving attitudes toward AI across the industry.</p><p><a href="https://www.docker.com/resources/2024-docker-ai-trends-report-infographic/">Click to Access to the 2024 Docker AI Trends Report</a></p><p>Here are the Top 10 Takeaways from the report, highlighting the future of AI in software development.</p><h3>1. Machine Learning (ML) Engineering is on the Rise</h3><p>The report underscores significant growth in ML engineering and data science within the Docker ecosystem. More developers are leveraging Docker to manage and scale ML workflows, integrating AI-driven applications in containerized environments. This growth reflects a broader trend: AI isn’t just a buzzword anymore — it’s becoming a core part of development.</p><h3>2. GenAI Leads the Pack of Emerging Trends</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*h_pmn2b63XQ5rrNy.png" /></figure><p>Generative AI (GenAI) is viewed as the most important trend in software development, with 40% of respondents identifying it as a key focus. GenAI’s ability to automate content creation, code generation, and even design processes is streamlining workflows for developers. Following closely behind, AI assistants for software engineering — used to assist with code, documentation, and debugging — were chosen by 38% of respondents as a vital trend to watch.</p><h3>3. AI is Used Across Diverse Company Sizes</h3><p>The survey paints a picture of diverse users, with 42% of respondents from small companies, 28% from mid-sized organizations, and 25% from large enterprises. This breadth showcases AI’s reach across companies of all sizes, demonstrating that AI is no longer just a tool for tech giants — it’s accessible and valuable to everyone.</p><h3>4. AI is Becoming an Essential Tool in Development</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/704/0*OCzcPzXqGR7-oXbT.png" /></figure><p>AI adoption is growing rapidly, with 64% of developers reporting they use AI in their daily work. AI is being applied in a variety of areas:</p><ul><li>33% use it to write code.</li><li>29% use it for writing documentation.</li><li>28% leverage AI for research purposes.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*qJMC54J-PubDSPbX.png" /></figure><p>These applications are helping developers to accelerate their productivity by handling routine or complex tasks.</p><h3>5. Generational Divide on AI Priorities</h3><p>The survey revealed a divide in the prioritization of AI trends between senior and junior developers. Senior developers, DevOps engineers, and platform managers consider GenAI the most important trend, seeing its potential in automating complex workflows. On the other hand, junior developers place more emphasis on AI assistants for writing code and performing routine tasks. This generational difference highlights AI’s diverse benefits for developers at different stages of their careers.</p><h3>6. ChatGPT and GitHub Copilot Dominate the AI Toolset</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*9mC8StQxXDPLF__c.png" /></figure><p>The most popular AI tools among developers reflect a trend toward leveraging AI for practical coding support. 46% of developers use ChatGPT, while 30% rely on GitHub Copilot. Additionally, 19% of developers are using Bard, indicating a growing ecosystem of AI-powered coding assistants helping developers write better, faster code.</p><h3>7. Positive AI Sentiments Prevail</h3><p>While concerns about AI’s role in the workplace remain, 65% of respondents agree that AI is a positive force in their work environment. More than half (61%) say AI makes their jobs easier, and 55% believe that AI enables them to focus on more important tasks by automating routine processes.</p><h3>8. AI and Job Security: A Mixed Bag</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*a2ZD3CagILnfKpSY.png" /></figure><p>Despite the overall positive sentiment, some developers express concerns about AI’s impact on job security. 23% of respondents see AI as a potential threat to their jobs, while 19% believe it makes their work more difficult. These mixed feelings reflect ongoing debates in the industry about whether AI will complement human skills or replace certain roles entirely.</p><h3>9. Moderate AI Dependency Among Developers</h3><p>When asked how dependent they are on AI for their work, developers rated their reliance on AI tools at an average of 4.04 out of 10. This score suggests that while AI tools are becoming essential, many developers still view them as complementary rather than indispensable. As AI tools continue to evolve, this dependency is likely to increase over time.</p><h3>10. AI Experience Matters: More Years, More GenAI Focus</h3><p>The report revealed that developers with more than six years of experience are more likely to prioritize GenAI in their work, whereas developers with fewer than five years of experience place greater importance on AI assistants. This suggests that experienced developers see the potential for AI to revolutionize higher-level workflows, while less-experienced developers appreciate the immediate benefits of AI-assisted code generation.</p><h3>The Road Ahead for AI and Docker in 2024</h3><p>The findings from Docker’s 2024 AI Trends Report make one thing clear: AI is becoming a cornerstone of software development, from writing code and documentation to streamlining research and debugging. As more developers adopt AI tools like ChatGPT, GitHub Copilot, and Bard, we can expect even faster innovation in how software is developed, tested, and deployed.</p><p>With Generative AI and AI assistants leading the charge, developers are empowered to automate routine tasks, reduce errors, and focus on building more innovative solutions. And as Docker continues to be a pivotal platform in the AI/ML ecosystem, it will play an increasingly important role in shaping the future of AI-driven software development.</p><p>As AI and ML trends evolve, developers should stay informed and explore how these technologies can enhance their workflows. The future is bright, and AI, coupled with Docker’s powerful containerization tools, will undoubtedly drive the next wave of innovation.</p><h3>Stay Updated</h3><p>To keep up with the latest trends in AI and Docker, subscribe to the Docker newsletter and stay tuned for the full report release. As AI transforms how we build software, staying ahead of the curve has never been more important.</p><p>Ready to dive into AI with Docker? Start by exploring Docker’s AI tools and resources, and begin containerizing your AI-driven applications today.</p><p><a href="https://github.com/collabnix/docker-aiml-stories">Check out the list of Docker AI/ML stories</a></p><h3>Further Readings</h3><ul><li><a href="https://collabnix.com/getting-started-with-genai-stack-powered-with-docker-langchain-neo4j-and-ollama/">Getting Started with GenAI Stack powered with Docker, LangChain, Neo4j and Ollama</a></li><li><a href="https://www.docker.com/blog/introducing-a-new-genai-stack/">Introducing a New GenAI Stack: Streamlined AI/ML Integration Made Easy</a></li><li><a href="https://www.docker.com/blog/local-llm-messenger-chat-with-genai-on-your-iphone/">Local LLM Messenger: Chat with GenAI on Your iPhone</a></li><li><a href="https://www.docker.com/blog/using-generative-ai-to-create-runnable-markdown/">Using Generative AI to Create Runnable Markdown</a></li><li><a href="https://www.docker.com/blog/readmeai-an-ai-powered-readme-generator-for-developers/">ReadMeAI: An AI-powered README Generator for Developers</a></li><li><a href="https://www.docker.com/blog/build-your-own-ai-driven-code-analysis-chatbot-genai-stack/">Build Your Own AI-Driven Code Analysis Chatbot for Developers with the GenAI Stack</a></li><li><a href="https://www.docker.com/blog/a-quick-guide-to-containerizing-llamafile-with-docker-for-ai-applications/">A Quick Guide to Containerizing Llamafile with Docker for AI Applications</a></li><li><a href="https://www.docker.com/blog/testing-genai-applications-in-java/">A Promising Methodology for Testing GenAI Applications in Java</a></li><li><a href="https://www.docker.com/blog/building-a-video-analysis-and-transcription-chatbot-with-the-genai-stack/">Building a Video Analysis and Transcription Chatbot with the GenAI Stack</a></li><li><a href="https://www.docker.com/blog/build-multimodal-genai-apps-with-octoai-and-docker/">Build Multimodal GenAI Apps with OctoAI and Docker</a></li><li><a href="https://www.docker.com/blog/llm-docker-for-local-and-hugging-face-hosting/">LLM Everywhere: Docker for Local and Hugging Face Hosting</a></li><li><a href="https://www.docker.com/blog/build-and-deploy-a-langchain-powered-chat-app-with-docker-and-streamlit/">Build and Deploy a LangChain-Powered Chat App with Docker and Streamlit</a></li><li><a href="https://www.docker.com/blog/how-to-run-hugging-face-models-programmatically-using-ollama-and-testcontainers/">How to Run Hugging Face Models Programmatically Using Ollama and Testcontainers</a></li><li><a href="https://www.docker.com/blog/build-machine-learning-apps-with-hugging-faces-docker-spaces/">Effortlessly Build Machine Learning Apps with Hugging Face’s Docker Spaces</a></li><li><a href="https://www.docker.com/blog/docker-and-hugging-face-partner-to-democratize-ai/">Docker and Hugging Face Partner to Democratize AI</a></li><li><a href="https://www.docker.com/blog/how-an-ai-assistant-can-help-configure-your-projects-git-hooks/">How an AI Assistant Can Help Configure Your Project’s Git Hooks</a></li><li><a href="https://www.docker.com/blog/docker-documentation-ai-powered-assistant/">Docker Documentation Gets an AI-Powered Assistant</a></li><li><a href="https://www.docker.com/blog/the-strategic-imperative-of-ai-in-2024/">The Strategic Imperative of AI in 2024</a></li><li><a href="https://www.docker.com/blog/preview-docker-extension-for-github-copilot/">“@docker can you help me…”: An Early Look at the Docker Extension for GitHub Copilot</a></li><li><a href="https://www.docker.com/blog/mindsdb-docker-extension/">Streamline the Development of Real-Time AI Applications with MindsDB Docker Extension</a></li><li><a href="https://www.docker.com/blog/creating-ai-enhanced-document-management-with-the-genai-stack/">Creating AI-Enhanced Document Management with the GenAI Stack</a></li><li><a href="https://www.docker.com/blog/debug-containers-ai-signal0ne-docker-extension/">Better Debugging: How the Signal0ne Docker Extension Uses AI to Simplify Container Troubleshooting</a></li><li><a href="https://www.docker.com/blog/ai-trends-report-2024/">AI Trends Report 2024: AI’s Growing Role in Software Development</a></li><li><a href="https://www.docker.com/blog/docker-nvidia-support-building-running-ai-ml-apps/">Docker Partners with NVIDIA to Support Building and Running AI/ML Applications</a></li><li><a href="https://www.docker.com/blog/docker-collaboration-snowflake-snowpark/">Empowering Data-Driven Development: Docker’s Collaboration with Snowflake and Docker AI Advancements</a></li><li><a href="https://www.docker.com/blog/announcing-docker-ai-ml-hackathon/">Announcing Docker AI/ML Hackathon</a></li><li><a href="https://www.docker.com/blog/how-ikea-retail-standardizes-docker-images-for-efficient-machine-learning-model-deployment/">How IKEA Retail Standardizes Docker Images for Efficient Machine Learning Model Deployment</a></li><li><a href="https://www.docker.com/blog/how-to-get-started-weaviate-vector-database-on-docker/">How to Get Started with the Weaviate Vector Database on Docker</a></li><li><a href="https://www.docker.com/blog/accelerating-machine-learning-with-tensorflow-js-using-pretrained-models-and-docker/">Accelerating Machine Learning with TensorFlow.js: Using Pretrained Models and Docker</a></li><li><a href="https://www.docker.com/blog/sentiment-analysis-and-insights-on-cryptocurrencies-using-docker-and-containerized-ai-ml-models/">Sentiment Analysis and Insights on Cryptocurrencies Using Docker and Containerized AI/ML Models</a></li><li><a href="https://www.docker.com/blog/supercharging-ai-ml-development-with-jupyterlab-and-docker/">Supercharging AI/ML Development with JupyterLab and Docker</a></li><li><a href="https://www.docker.com/blog/100-million-pull-requests-for-ai-ml-images-docker-hub/">Why Are There More Than 100 Million Pull Requests for AI/ML Images on Docker Hub?</a></li><li><a href="https://www.docker.com/blog/stable-diffusion-and-docker-on-wsl2/">Optimizing Deep Learning Workflows: Leveraging Stable Diffusion and Docker on WSL 2</a></li><li><a href="https://www.docker.com/blog/developing-using-rasa-and-docker/">Conversational AI Made Easy: Developing an ML FAQ Model Demo from Scratch Using Rasa and Docker</a></li><li><a href="https://www.docker.com/blog/full-stack-reproducibility-for-ai-ml-with-docker-kaskada/">Full-Stack Reproducibility for AI/ML with Docker and Kaskada</a></li><li><a href="https://www.docker.com/blog/how-to-develop-and-deploy-a-customer-churn-prediction-model-using-python-streamlit-and-docker/">How to Develop and Deploy a Customer Churn Prediction Model Using Python, Streamlit, and Docker</a></li><li><a href="https://www.docker.com/blog/build-retail-store-items-detection-system-no-code-ai/">Build and Deploy a Retail Store Items Detection System Using No-Code AI Vision at the Edge</a></li><li><a href="https://www.docker.com/blog/how-to-train-and-deploy-a-linear-regression-model-using-pytorch-part-1/">How to Train and Deploy a Linear Regression Model Using PyTorch</a></li><li><a href="https://www.docker.com/blog/deploy-gpu-accelerated-applications-on-amazon-ecs-with-docker-compose/">How to Deploy GPU-Accelerated Applications on Amazon ECS with Docker Compose</a></li><li><a href="https://www.docker.com/blog/top-developer-trends-for-2021/">Top Developer Trends for 2021</a></li><li><a href="https://www.docker.com/blog/depend-on-docker-for-kubeflow/">Depend on Docker for Kubeflow</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=deefbc711917" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Is Docker Desktop Just a UI?]]></title>
            <link>https://ajeetraina.medium.com/is-docker-desktop-just-a-ui-cdff9a2dd0ac?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/cdff9a2dd0ac</guid>
            <category><![CDATA[containers]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[developer]]></category>
            <category><![CDATA[security]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 18 Sep 2024 02:32:55 GMT</pubDate>
            <atom:updated>2024-09-18T02:32:55.873Z</atom:updated>
            <content:encoded><![CDATA[<p>When interacting with tons of engineers, I often hear a common question: “Why should I use Docker Desktop? I’m already comfortable using the CLI, and I don’t need a GUI.”</p><p>This perception — that Docker Desktop is just a graphical user interface (GUI) — is widespread, but it misses the broader picture. <a href="https://www.docker.com/products/docker-desktop/">Docker Desktop</a> isn’t just a UI; it’s a comprehensive development platform that integrates a suite of tools, services, trusted content, and automation. These features are designed to streamline development, enabling faster and more secure delivery of applications. In this blog, we’ll explore why Docker Desktop is so much more than just a GUI and why it has earned its place as the #1 most-used developer tool in Stack Overflow’s 2023 Developer Survey.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*5fHq2hD8aOiK6RGX.png" /></figure><h3>Docker Desktop: More Than Just a UI</h3><p>The graphical interface is a core aspect of Docker Desktop, but that’s just one part of the picture. Docker Desktop offers a wide range of functionalities that go beyond the visual experience, making it an essential tool for developers who want to work efficiently, securely, and with greater flexibility.</p><p>Docker Desktop integrates a comprehensive set of tools and services, allowing developers to automate and optimize their workflows from development through deployment.</p><h3>Addressing Key Developer Needs: Speed, Security, and Choice</h3><p>Docker consistently ranks highly in the Stack Overflow community because it effectively addresses three key concerns: speed, security, and choice. Let’s break down how Docker Desktop tackles each one.</p><h3>I. Speed</h3><p>For developers, time spent on setup and configuration is time taken away from writing code. Docker Desktop helps speed up this process through various features:</p><h3>1. Docker Init</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*Rjp-5Om6-GkyYmZr.png" /></figure><p>Automatically generates Dockerfiles and docker-compose.yml files for popular programming languages like Python, Node, and Go, reducing the time it takes to start new projects.</p><p><a href="https://docs.docker.com/engine/reference/commandline/init/">Docker init</a> is a CLI command that was introduced in Docker Desktop to simplify the process of initializing a new project to run in a Docker container. When you run the docker init command in your project directory, it will guide you through the creation of the necessary files for your project with sensible defaults. These files include:</p><ul><li>.dockerignore</li><li>Dockerfile</li><li>docker-compose.yaml</li></ul><p>The docker init command also allows you to choose the application platform that your project uses and the relative directory of your main package. Additionally, it can generate Docker assets for your project using the Docker Scout CLI and provides an adminless Mac install flow that does not require admin privileges. Do check: <a href="https://collabnix.com/introducing-docker-init-generating-docker-assets-for-your-projects/">Introducing Docker Init: Generating Docker Assets for Your Projects</a></p><h3>2. VirtioFS Support</h3><p><em>Reduces database import times by 98%, significantly speeding up local development</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*mtdbWnnMYjL6lNrZ.png" /></figure><p>VirtioFS is a high-performance file system that can be used with Docker containers to improve their performance.In this post, we will explore what VirtioFS is, how it works, and the benefits of using it with Docker Desktop. Docker Desktop uses VirtioFS to mount the host file system in the container as a shared file system. This allows the container to access files on the host machine directly, without the need for a network share or a volume mount. Do check: <a href="https://collabnix.com/unlocking-high-performance-with-virtiofs-in-docker-desktop/">Unlocking High Performance with VirtioFS in Docker Desktop</a></p><h3>3. Docker Compose File Watch</h3><p><em>Syncs local code changes with containers in real-time, eliminating manual restarts and updates.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*4kyoElYVX8xew2yG.png" /></figure><p>Docker Compose Watch is a file watch command that automates the update process for running Docker Compose services as developers edit and save their code. By monitoring specified file or directory paths on the host machine, Docker Compose Watch detects changes and performs corresponding actions within the service container. This capability enables developers to instantly see the impact of their code changes without manually triggering image builds or container restarts. Do check: <a href="https://collabnix.com/what-is-docker-compose-watch-and-what-problem-does-it-solve/">What is Docker Compose Watch and what problem does it solve?</a></p><h3>4. vpnkit to gVisor Networking:</h3><p><em>Improves container-to-host networking performance by up to 5X.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/608/0*A4UL9yOahdeJpFxL.png" /></figure><p>In Docker Desktop 4.19, Docker introduced a major enhancement to boost VM networking performance on macOS Ventura and later versions. By replacing VPNKit with the gVisor TCP/IP stack, this update delivers a 5x increase in container-to-host networking speed. This change significantly improves communication between containers and external servers, making it especially valuable for developers who rely on frequent network operations like downloading packages via npm install or apt-get.</p><p>This update not only optimizes container-to-host communication but also enhances overall efficiency, providing a faster, more responsive development environment on macOS. Do check: <a href="https://www.docker.com/blog/docker-desktop-4-19/">Docker Desktop 4.19: Compose v2, Moby Project Update, and New Language Support</a></p><h3>5. Docker Build Cloud</h3><p><em>Docker builds. 39x faster. Executable in the cloud.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/0*pgRfkliZt3Gw888C.png" /></figure><p>Docker Build Cloud is a service that lets developers build their container images faster, both locally and in CI. Builds run on cloud infrastructure optimally dimensioned for your workloads, with no configuration required. The service uses a remote build cache, ensuring fast builds anywhere and for all team members. It solves the problem of slow build times by running builds locally and in the cloud. This means that developers can take advantage of the powerful hardware and resources that are available locally and in the cloud, which can significantly speed up the build process. Do check: <a href="https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/supercharge-arm-builds-with-docker-build-cloud">Supercharge your Arm builds with Docker Build Cloud: Efficiency meets performance</a></p><h3>II. Security</h3><p>Security is a top concern for developers, especially with increasing demands for secure coding practices. Docker Desktop provides a set of security-focused tools that seamlessly integrate into the development workflow:</p><h3>1. Docker Scout</h3><p><em>Automatically scans for vulnerabilities and recommends fixes while you code, allowing you to address security concerns early in the development process</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*-zfwCscsXMg4NUJF.png" /></figure><p>Docker Scout is a collection of software supply chain features that appear throughout Docker user interfaces and the command line interface (CLI). These features provide detailed insights into the composition and security of container images.</p><p>Docker Scout is designed with developers in mind and integrated into Docker. With Docker Scout, spend less time searching for and fixing vulnerabilities, and more time developing your code. Docker is building Docker Scout to sit as a layer on top of the Docker ecosystem to help developers build and maintain a secure software supply chain. Right now, Docker is focussed on helping with vulnerability remediation; we think our CVE-to-package matching (using PURLs to help avoid false positives) and our SBOM-to-CVEdb matching (no need to rescan) are both nice improvements to the current Developer experience. Do check: <a href="https://collabnix.com/a-first-look-at-docker-scout-a-software-supply-chain-security-for-developers/">A First Look at Docker Scout — A Software Supply Chain Security for Developers</a></p><h3>2. Attestations</h3><p><em>Automatically generates Software Bill of Materials (SBOMs) and SLSA Provenance, ensuring that security credentials are embedded directly into your image.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*lOeWt3HEEEIRmFkt.png" /></figure><p>Attestations in Docker describe how an image was built and what it contains. They are created at build-time by BuildKit and become attached to the final image as metadata. The purpose of attestations is to make it possible to inspect an image and see where it comes from, who created it and how, and what it contains. This enables you to make informed decisions about how an image impacts the supply chain security of your application. It also enables the use of policy engines for validating images based on policy rules you’ve defined.<br>Do check: <a href="https://docs.docker.com/build/metadata/attestations/">Attestations</a></p><h3>III. Choice</h3><p>Developers appreciate flexibility and choice in their toolsets, and Docker Desktop delivers:</p><h3>1. Docker Extensions</h3><p><em>Allows developers to seamlessly connect their favorite development tools to your application development and deployment workflows</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*rDMmJQwRz_lY5sou.png" /></figure><p>With over 700 Docker Extensions available on Docker Hub, Docker Desktop enables developers to customize their environment with tools tailored to their specific needs, ranging from Kubernetes development to security enhancements.</p><p>Docker Extensions lets you use third-party tools within Docker Desktop to extend its functionality. It allows developers to seamlessly connect their favorite development tools to your application development and deployment workflows. Do check: <a href="https://collabnix.github.io/docker-community-extensions/">A Curated List of Docker Extensions</a></p><h3>2. Docker-Sponsored Open Source Projects</h3><p><em>Developers can access more than 600 open-source projects for free via Docker Hub, fostering collaboration and innovation.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/0*P7Te5FbrbQNL9TTq.png" /></figure><p>Docker indeed supports open-source projects through its Docker-Sponsored Open Source Program. This program publishes and maintains Docker Open Source Images on Docker Hub. These images are part of a special program and have a special badge on Docker Hub, making it easier for users to identify projects that Docker has verified as trusted, secure, and active open-source projects.</p><p>The Docker-Sponsored Open Source (DSOS) Program provides several features and benefits to non-commercial open source developers. The program grants the following perks to eligible projects:</p><ul><li>Repository logo</li><li>Verified Docker-Sponsored Open Source badge</li><li>Insights and analytics</li><li>Access to Docker Scout for software supply chain management</li><li>Removal of rate limiting for developers</li><li>Improved discoverability on Docker Hub</li></ul><p>Do check: <a href="https://docs.docker.com/trusted-content/dsos-program/">Docker-Sponsored Open Source Program</a></p><h3>3. Multiple Architectures</h3><p><em>A single docker build command can produce images compatible with different architectures, including x86, ARM, RISC-V, and even IBM mainframes, making Docker Desktop a versatile solution for cross-platform development.</em></p><p>Docker provides support for building images for multiple architectures. This is particularly useful when you want your applications to run on different types of hardware. The architectures that are highly recommended for your extension are linux/amd64 and linux/arm64</p><p>By default, Docker Desktop’s builder doesn’t support building multi-platform images. You can enable this feature by switching to a different driver or turning on the containerd image store.</p><p>Do check: <a href="https://docs.docker.com/desktop/containerd/#build-multi-platform-images">Build multi-platform images</a></p><h3>4. WebAssembly</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*RjmTldvLRasrQyV3.png" /></figure><p>The Docker Desktop Wasm feature allows you to run Wasm applications alongside your Linux containers. This means that you can use Docker to build, run, and share both Wasm and Linux applications.</p><p>To use the Docker Desktop Wasm feature, you need to enable the Wasm feature in the Docker Desktop settings. Once the Wasm feature is enabled, you can create and run Wasm containers just like you would any other Docker container.</p><p>Docker sees Wasm as a complementary technology to Linux containers. This is where developers can choose which technology they use (or both!) depending on the use case. And as the community explores what’s possible with Wasm, the effort is to make Wasm applications easier to develop, build, and run using the experience and tools you know and love. Docker solves the traditional problem — it works on my machine, works on yours and in production flawlessly. Docker Desktop and CLI can now manage both Linux containers and Wasm containers side by side.</p><p>The Wasm feature is still in Beta. We recommend that you do not use this feature in production environments as this feature may change or be removed from future releases.</p><h4>List of Supported Wasm Runtimes</h4><p>Docker Desktop support the following Wasm runtime:</p><ul><li><strong>Slight</strong>: Slight is a lightweight Wasm runtime that is designed to be fast and efficient. It is a good choice for running Wasm workloads that require high performance.</li><li><strong>Spin</strong>: Spin is a serverless Wasm runtime that is designed to be easy to use and deploy. It is a good choice for running Wasm workloads that are event-driven or that need to be scaled horizontally.</li><li><strong>WasmEdge</strong>: WasmEdge is a full-featured Wasm runtime that supports a wide range of features. It is a good choice for running Wasm workloads that require a high degree of flexibility and control.</li><li><strong>Wasmtime</strong>: Wasmtime is a Wasm runtime that is designed to be compatible with the WebAssembly specification. It is a good choice for running Wasm workloads that need to be portable to different environments.</li></ul><h3>Conclusion</h3><p>Docker Desktop is far more than just a GUI; it’s a comprehensive development platform that enhances your workflow with speed, security, and choice. Its continued recognition as the #1 most-used developer tool in Stack Overflow’s 2023 Developer Survey reinforces its value to the developer community.</p><p>For those who are still asking, “Why should I use Docker Desktop when I’m comfortable with the CLI?” — the answer is simple. Docker Desktop offers a robust set of tools and automations that go beyond what the CLI alone can provide. It empowers developers to work smarter, faster, and more securely, making it an indispensable tool in modern development environments.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cdff9a2dd0ac" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Kubernetes 101 Workshop for Beginners]]></title>
            <link>https://ajeetraina.medium.com/kubernetes-101-workshop-for-beginners-178c5fc751fd?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/178c5fc751fd</guid>
            <category><![CDATA[workshop]]></category>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[orchestration]]></category>
            <category><![CDATA[kubernetes]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Fri, 24 Nov 2023 08:54:30 GMT</pubDate>
            <atom:updated>2023-11-24T08:54:30.150Z</atom:updated>
            <content:encoded><![CDATA[<iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fi0d5ta83c-k%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Di0d5ta83c-k&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fi0d5ta83c-k%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/889583d4dfe1a999b4fa40cb084f6b51/href">https://medium.com/media/889583d4dfe1a999b4fa40cb084f6b51/href</a></iframe><p>Are you new to Kubernetes and looking to gain a solid understanding of its core concepts? Join us for a one-day workshop on Kubernetes for beginners!</p><p>In this intensive workshop, we will cover Pod101, Service101, Deployment101, Network Policy101 and much more… providing you with a comprehensive overview of these fundamental components of Kubernetes.</p><p>In this workshop, you will learn the basics of Kubernetes architecture and how to create, manage, and scale containerised applications using Pods, Services, Deployments, Network Policies etc. You will also gain hands-on experience through practical exercises and real-world examples, allowing you to apply your newly acquired knowledge in a practical setting.</p><p>Whether you are a developer, operations engineer, or IT professional, this workshop is designed to give you a solid foundation in Kubernetes, one of the most popular container orchestration platforms in the world.</p><p>No prior experience with Kubernetes is required, making this workshop perfect for beginners who are looking to dive into the world of Kubernetes and containerisation.</p><h3>Workshop Topics:</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FC1x0E3Pl7ko%3Fstart%3D7%26feature%3Doembed%26start%3D7&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DC1x0E3Pl7ko&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FC1x0E3Pl7ko%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/4c916f97dbdb129e731220f25b6881b4/href">https://medium.com/media/4c916f97dbdb129e731220f25b6881b4/href</a></iframe><p>— Pod101</p><p>— Service101</p><p>— Deployment101</p><p>— ReplicaSet101</p><p>— Scheduler101</p><p>— Services101</p><p>— StatefulSet101</p><p>— Daemon101</p><p>— Jobs101</p><p>— Ingres101</p><p>— RBAC101</p><p>— Service Catalog101</p><p>— Cluster Networking101</p><p>— Network Policies 101</p><p>— Monitoring101</p><p>— Security101</p><p>— Logging101</p><p>— Helm101</p><p>Join us for this exciting one-day workshop and take your first step towards mastering Kubernetes! Don’t miss out on this opportunity to learn from experienced Kubernetes practitioners and connect with fellow beginners in the Kubernetes community. Register now to secure your spot and get ready to level up your Kubernetes skills!</p><h3>Kubernetes Labs and Tutorials:</h3><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F_vkGGU1yEwk%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_vkGGU1yEwk&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F_vkGGU1yEwk%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/f0e02141e34a275a2991ecb4403650fd/href">https://medium.com/media/f0e02141e34a275a2991ecb4403650fd/href</a></iframe><p>— <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbV85bm5kNWc2QkpPMkFoNFk0RTVYcHRuc0ZIZ3xBQ3Jtc0tsbUttUTRYVTNXSzM5SVpoazg4c1RCaDJRaFVRemdZcUZJSGdIZWZxbDNjaWl4NXZfNlcwdGVzRzJGNzhjTlhmNWZPeW9JQmRjN3p5dnJfSzgyVDRCc3BFT2s1SGxQRmZtZ1dvaWptNG9kVDBnczQ4OA&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23preparing-5-node-kubernetes-cluster&amp;v=i0d5ta83c-k">https://github.com/collabnix/kubelabs...</a></p><p>— <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbEpoWkhlaTdZQXV2TUxuSmJKY0gzbzFWbExMZ3xBQ3Jtc0tubU91M0ZaOUhhT2pScjFJano0TS0xeDlEcDczc250WmZ2TEtDVW9sd0UwZ0hRaDZDTGJmYVIxVW80VTc2ZWdyWVcweXVLZENCTGVXeTJZYXNKemhHWGVWWE9ubzhrUkZWMFVPc3pWV2RmNlA5MUFFOA&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23using-kubectl&amp;v=i0d5ta83c-k">https://github.com/collabnix/kubelabs...</a></p><p>— <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbUhBWTM4ZUJLdTZ2MnFocmZKQ0lXc3VKbWFBUXxBQ3Jtc0tuay1URVlRc2VmYVBCbTRaQXg5M0FfV3dWeUsxdlprQ3cxU0dOX0dTdU1MUjBMdUY0d0NrZWNBZk04b2FHc05TaHdCT0M4aW81d0U3SUxlV1ZpUHNIcUQyaTU3UjFVNDBvR2JVNUdUNk02SmJVbnN0SQ&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23pods101&amp;v=i0d5ta83c-k">https://github.com/collabnix/kubelabs...</a></p><p>— <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbkU1MWFUSjFXQTBOa05KMGU3d2VvWkVodGszZ3xBQ3Jtc0ttTGJKeVlGRVV5ME9BMnRPX0tSMmNSNTdpZ080TUFGcS1xSGNvNG9TamFkYVI0ZDJVTUJzVzJaak5LaWdKTEhWZlVlUGo4SFBGVElVN2JXUkw2ZExQUnFoR2p4b2xlYmdqa01NSDd6d25qZUtuaDJqZw&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23replicaset101&amp;v=i0d5ta83c-k">https://github.com/collabnix/kubelabs...</a></p><p>— <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqa29LdTk4c2s4UktDMnNKTkJnNHFaWmVkUWtXd3xBQ3Jtc0tsUnF3WVdmQzJIVG5QTlZGYktLTWZUNm1UakgxNVhwRWt1RTRXQzl1bG5ycVlZc0lieXpsTTM5dmF1NXp5VHJtZUFja0VQQjFKYUE1SVlmVS1fdHM4clRLWnZmbmRPSER5OWFlTXRZYS1CTW9XYlpBbw&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23scheduler101&amp;v=i0d5ta83c-k">https://github.com/collabnix/kubelabs..</a></p><p><a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqa29LdTk4c2s4UktDMnNKTkJnNHFaWmVkUWtXd3xBQ3Jtc0tsUnF3WVdmQzJIVG5QTlZGYktLTWZUNm1UakgxNVhwRWt1RTRXQzl1bG5ycVlZc0lieXpsTTM5dmF1NXp5VHJtZUFja0VQQjFKYUE1SVlmVS1fdHM4clRLWnZmbmRPSER5OWFlTXRZYS1CTW9XYlpBbw&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23scheduler101&amp;v=i0d5ta83c-k">.</a> — <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqa201NjdzTm9DelJjZlBMS3ZxM1c1Sm9tdkxCUXxBQ3Jtc0tteGtIVllFTHI5bjdzb3ZneXRSZ2NLMjF6X0x6QnpWWGsyejd6TV85cTBLZW9ZWURhOHpnSmVMc0MyNjNNSTFpcktkc0tfU1ZvNi11QnBjeXBtZU9PQWdHdWJHR1ptYnVKSUEyV2VidmotQlFmRHNTVQ&amp;q=https%3A%2F%2Fgithub.com%2Fcollabnix%2Fkubelabs%23statefulsets101&amp;v=i0d5ta83c-k">https://github.com/collabnix/kubelabs...</a></p><h3>Connect with us:-</h3><ul><li>Slack: <a href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbjN5MWxOQ0FtWUNFZWtvUXRfTEpOazNWRzlNZ3xBQ3Jtc0tteUozMUgtM3A0SjRmbDlxTU1UYm1lcXJRa29YaThjZ1l1ME5MU29OMjlheGRqZzdiWFp1ZklPTElXSEppbENIRm9hX245RkdKenZuWXlGbnlBblZJLTByZ3U3OEJKQlJPbERxTVVjV1hweE83QXQ3RQ&amp;q=https%3A%2F%2Flaunchpass.com%2Fcollabnix&amp;v=i0d5ta83c-k">https://launchpass.com/collabnix</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=178c5fc751fd" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Top Reasons why You Should Join Collabnix Meetup Community]]></title>
            <link>https://ajeetraina.medium.com/top-reasons-why-you-should-join-collabnix-meetup-community-143f34bbbaec?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/143f34bbbaec</guid>
            <category><![CDATA[docke]]></category>
            <category><![CDATA[events]]></category>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[meetup]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Thu, 23 Mar 2023 04:40:12 GMT</pubDate>
            <atom:updated>2023-03-23T04:42:22.782Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*pjfg_Pl1gX-MwP8y.jpeg" /></figure><p><a href="https://devops.collabnix.com/">DevOps</a> is a rapidly growing field that brings together the worlds of development and operations. It is a culture and set of practices that emphasizes collaboration and communication between software developers and IT professionals, while automating the process of software delivery and infrastructure changes. DevOps is transforming the way businesses approach software development and IT operations, and it has become an essential part of any modern software development organization.</p><p>In order to help foster a sense of community and collaboration in the DevOps space, I am excited to announce the creation of a new Meetup group: <a href="https://www.meetup.com/collabnixcommunity/">Collabnix Community</a>. Our group will focus on DevOps, Cloud-native and IoT based events, bringing together experts and enthusiasts to share their knowledge and experiences.</p><h3>Let’s talk about our Meetup Events…</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C9JlY8pQdpccqgjEX3cu4Q.png" /></figure><p>Collabnix Community will be hosting events in collaboration with leading Meetup communities all across Bengaluru and India. Our aim is to create a vibrant and engaging community where people can come together to learn, share and network.</p><p>Collabnix Community has already established a strong presence on both Slack and Discord, with close to 10,000 members across both platforms. We believe that by extending our reach to Meetup, we can provide even more opportunities for people to connect and engage with the DevOps community.</p><p>Our events will cover a wide range of topics related to DevOps, including best practices for continuous integration and delivery, containerization, Kubernetes, serverless computing, automation, cloud infrastructure, and much more. Our speakers will be experts in their respective fields, sharing their knowledge and insights with the community.</p><p>Here’s a glimpse of our upcoming Meetup events in the next 2 months:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f7Xy0DfAIKs6RJZ6AsmyvA.png" /><figcaption><a href="https://www.meetup.com/collabnix/events/292378454/">https://www.meetup.com/collabnix/events/292378454/</a></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KqIeYutP58Z6w31vaGCjqA.png" /><figcaption><a href="https://www.meetup.com/collabnix/events/292333947/">1-Full Day Workshop — https://www.meetup.com/collabnix/events/292333947/</a></figcaption></figure><h3>What benefits can you expect by joining Collabnix Community?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EHb7cGK8MYGyJfNf.png" /></figure><p>One of the key benefits of joining Collabnix Community is the opportunity to connect with other like-minded individuals who share a passion for DevOps. Networking is an essential part of any career, and being part of our community will provide you with opportunities to meet new people, share your experiences, and learn from others.</p><p>Another benefit of joining our community is access to exclusive content and resources. We will be sharing valuable content with our members, including webinars, whitepapers, and other resources that can help you stay up to date with the latest trends and best practices in the DevOps space.</p><p><strong>Projects Contributed by Collabnix Community Members:</strong></p><ul><li>Docker Labs — <a href="https://dockerlabs.collabnix.com">https://dockerlabs.collabnix.com</a></li><li>Kube Labs —<a href="https://kubelabs.collabnix.com"> https://kubelabs.collabnix.com</a></li><li>Kube Tools — <a href="https://kubetools.collabnix.com">https://kubetools.collabnix.com</a></li><li>Docker Tools — <a href="https://dockertools.collabnix.com">https://dockertools.collabnix.com</a></li><li>Docker Extensions —<a href="https://dockerextensions.collabnix.com"> https://dockerextensions.collabnix.com</a></li><li>Terraform — <a href="https://terraform.collabnix.com">https://terraform.collabnix.com</a></li><li>DevOps —<a href="https://devops.collabnix.com"> https://devops.collabnix.com</a></li></ul><p>In conclusion, if you are a DevOps enthusiast or professional looking to connect with others in the industry, I encourage you to join Collabnix Community on Meetup. Our events will be informative, engaging, and provide plenty of opportunities to network with other DevOps professionals. With our strong presence on Slack and Discord, and our growing community on Meetup, we are confident that Collabnix Community will become one of the leading DevOps communities in India.</p><blockquote><a href="https://www.meetup.com/collabnix/">Click Here to Join our Meetup Community</a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=143f34bbbaec" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting Started with FastAPI and Docker]]></title>
            <link>https://ajeetraina.medium.com/getting-started-with-fastapi-and-docker-ec6dd498d669?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/ec6dd498d669</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[fastapi]]></category>
            <category><![CDATA[docker-desktop]]></category>
            <category><![CDATA[docker]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Wed, 01 Mar 2023 06:57:47 GMT</pubDate>
            <atom:updated>2023-03-01T06:57:47.811Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6vPH8wkVXW_jkas2-XJ7RQ.png" /></figure><p><a href="https://fastapi.tiangolo.com/deployment/docker/">FastAPI</a> is a modern, fast (hence the name), web framework for building APIs with Python. It is built on top of Starlette for the web server, Pydantic for data validation and serialization, and provides automatic API documentation using OpenAPI and JSON Schema.</p><p>The architecture of FastAPI is based on the following key components:</p><ul><li><strong>ASGI</strong>: FastAPI is based on the ASGI (Asynchronous Server Gateway Interface) specification, which allows for high-performance asynchronous request handling.</li><li><strong>Starlette</strong>: FastAPI is built on top of Starlette, a lightweight ASGI framework for building high-performance async web services. Starlette provides a lot of the underlying functionality of FastAPI, such as request and response handling, routing, and middleware support.</li><li><strong>Pydantic</strong>: FastAPI uses Pydantic, a data validation and serialization library, to define the data models for API input and output. Pydantic provides powerful validation and serialization capabilities that make it easy to define and validate complex data structures.</li><li><strong>OpenAPI</strong>: FastAPI automatically generates OpenAPI documentation for your API based on your code, making it easy to document your API and to generate client code in other programming languages.</li><li><strong>Dependency Injection</strong>: FastAPI provides built-in dependency injection, allowing you to easily inject dependencies (such as database connections or other services) into your API functions.</li></ul><p>The architecture of FastAPI is designed to be fast, easy to use, and highly scalable. By leveraging the power of ASGI, Starlette, Pydantic, and OpenAPI, FastAPI provides a modern, high-performance framework for building APIs with Python.</p><h3>Why containerise FastAPI?</h3><p>There are several reasons why you might want to containerize a FastAPI application:</p><ul><li><strong>Portability</strong>: Containers provide a lightweight and portable way to package and deploy applications, making it easy to move your application from one environment to another, such as from your local development environment to a production server.</li><li><strong>Consistency</strong>: By containerizing your application, you can ensure that it will run the same way in any environment, without having to worry about differences in the operating system, system libraries, or other dependencies.</li><li><strong>Isolation</strong>: Containers provide a level of isolation between your application and the host operating system, which can help to improve security and stability.</li><li><strong>Scalability</strong>: Container orchestration platforms like Kubernetes or Docker Swarm make it easy to scale your application horizontally by adding or removing container instances, providing an efficient and flexible way to handle changes in demand.</li><li><strong>Reproducibility</strong>: By using a Dockerfile to build your container image, you can reproduce your application environment at any time, making it easier to troubleshoot issues or test new features.</li></ul><p>Containerizing your FastAPI application can help to streamline your development and deployment processes, improve consistency and portability, and make it easier to scale and manage your application in production.</p><h3>Getting Started</h3><h3>Pre-requisite</h3><ul><li>Install Docker Desktop</li></ul><h3>Step 1. Create a new directory for your project and navigate into it:</h3><pre>mkdir fastapi-docker<br>cd fastapi-docker</pre><h3>Step 2. Create a new Python virtual environment:</h3><pre>python -m venv venv</pre><h3>Step 3. Activate the virtual environment:</h3><pre>source venv/bin/activate</pre><h3>Step 4. Install FastAPI and uvicorn:</h3><pre>pip install fastapi uvicorn</pre><h3>Step 5. Create a new file called main.py and add the following</h3><pre>from fastapi import FastAPI</pre><pre>app = FastAPI()</pre><pre>@app.get(&quot;/&quot;)<br>def read_root():<br>    return {&quot;Hello&quot;: &quot;World&quot;}</pre><pre>@app.get(&quot;/items/{item_id}&quot;)<br>def read_item(item_id: int, q: str = None):<br>    return {&quot;item_id&quot;: item_id, &quot;q&quot;: q}</pre><h3>Step 6. Create a new file called Dockerfile and add the following code:</h3><pre>FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9</pre><pre>COPY ./app /app</pre><p>This Dockerfile is based on the tiangolo/uvicorn-gunicorn-fastapi image, which includes everything needed to run a FastAPI application using uvicorn and gunicorn.</p><p>The COPY command copies the contents of the app directory (which will contain our main.py file) into the /app directory in the Docker container.</p><h3>Step 7. Create a new directory called app and move the main.py file into it:</h3><pre>mkdir app<br>mv main.py app/</pre><h3>Step 8. Build the Docker image:</h3><pre>docker build -t fastapi-docker .</pre><p>This command will build the Docker image using the Dockerfile in the current directory and tag it with the name fastapi-docker.</p><h3>Step 9. Run the Docker container:</h3><pre>docker run -p 8000:80 fastapi-docker</pre><p>This command will start a new Docker container and map port 80 inside the container to port 8000 on the host machine.</p><p>You can now test your FastAPI application by visiting <a href="http://localhost:8000/">http://localhost:8000</a> in your web browser or making HTTP requests to it using a tool like curl.</p><pre>$ curl http://192.168.0.13:8000<br>{&quot;Hello&quot;:&quot;World&quot;}[node2] (local) root@192.168.0.12 ~<br>$</pre><p>That’s it! You have now containerized a FastAPI application using Docker.</p><h3>Using Docker Compose</h3><p>If you’re looking out for Docker compose-specific sample app, head over to <a href="https://github.com/docker/awesome-compose/tree/master/fastapi">Docker Awesome-Compose repository</a></p><h3>Clone the Repository</h3><pre>git clone https://github.com/docker/awesome-compose/<br>cd awesome-compose/fastapi</pre><pre>services:<br>  api:<br>    build: .<br>    container_name: fastapi-application<br>    environment:<br>      PORT: 8000<br>    ports:<br>      - &#39;8000:8000&#39;<br>    restart: &quot;no&quot;</pre><h3>Running the Containers</h3><pre>docker compose up -d</pre><h3>Listing the containers</h3><pre>docker compose ps<br>NAME                  COMMAND             SERVICE             STATUS              PORTS<br>fastapi-application   &quot;/start.sh&quot;         api                 running             80/tcp, 0.0.0.0:8000-&gt;8000/tcp</pre><p>After the application starts, navigate to <a href="http://localhost:8000/">http://localhost:8000</a> in your web browser and you should see the following json response:</p><pre>{<br>&quot;message&quot;: &quot;OK&quot;<br>}</pre><h3>Stop and remove the containers</h3><pre>$ docker compose down</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ec6dd498d669" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A First Look at Docker Scout — A Software Supply Chain Security for Developers]]></title>
            <link>https://ajeetraina.medium.com/a-first-look-at-docker-scout-a-software-supply-chain-security-for-developers-b79831b01795?source=rss-8489583a2023------2</link>
            <guid isPermaLink="false">https://medium.com/p/b79831b01795</guid>
            <category><![CDATA[vulnerability-scanning]]></category>
            <category><![CDATA[docker-desktop]]></category>
            <dc:creator><![CDATA[Ajeet Singh Raina]]></dc:creator>
            <pubDate>Tue, 28 Feb 2023 07:40:42 GMT</pubDate>
            <atom:updated>2023-03-01T08:00:47.456Z</atom:updated>
            <content:encoded><![CDATA[<h3>A First Look at Docker Scout — A Software Supply Chain Security for Developers</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Xs5ksl_jsIQodlPaz08WLQ.png" /></figure><p>With the latest <a href="https://www.docker.com/blog/docker-desktop-4-17-new-development-functionality/">Docker Desktop 4.17 release</a>, the Docker team introduced Docker Scout. <a href="https://www.docker.com/products/docker-scout/">Docker Scout</a> is a collection of software supply chain features that appear throughout Docker user interfaces and the command line interface (CLI). These features provide detailed insights into the composition and security of container images.</p><h3>How is Docker Scout different from other security tools?</h3><p>There are various security tools available today in the market. While there are similarities and differences between all tools of this nature, Docker Scout stands out by offering both visibility into the dependencies called in specific layers of the images, and remediation options directly in existing developer workflows. Particularly, Advanced image analysis not only lets you analyze the vulnerabilities in your dependencies but also provides you with remediation options that help you to act quickly.</p><p>If a vulnerability is present in the base image, Docker Scout will check for any updated or patched base images and make recommendations to replace the base image. If a vulnerability is present in other layers, Docker Scout will indicate exactly where the vulnerability is introduced, and make recommendations accordingly.</p><p>Docker Scout is designed with developers in mind and integrated into Docker. With Docker Scout, spend less time searching for and fixing vulnerabilities, and more time developing your code. Docker is building Docker Scout to sit as a layer on top of the Docker ecosystem to help developers build and maintain a secure software supply chain. Right now, Docker is focussed on helping with vulnerability remediation; we think our CVE-to-package matching (using PURLs to help avoid false positives) and our SBOM-to-CVEdb matching (no need to rescan) are both nice improvements to the current Developer experience.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/0*bmxCyQZ2h6YhUTTI.png" /></figure><h3>What problem does it solve?</h3><h3>1. Image Content Analysis</h3><p>Docker Scout analyzes the image contents and generates a detailed report of packages and vulnerabilities that it detects. It provides you with suggestions for how you can remediate issues discovered by the image analysis. It also allows you to get base image updates and recommended tags and digests, and filter your images on vulnerability information.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/0*s9H_dtsyKaFP2VFV.png" /></figure><h3>2. Artifactory Integration</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/0*HOQ1sLC6g7ycxTjx.png" /></figure><p>Docker Scout allows you to pull and view analysis for images from Docker Hub and Artifactory repositories. Integrating Docker Scout with JFrog Artifactory lets you run image analysis automatically on images in your Artifactory registries. This integration is made possible by a monitoring agent. The agent is a standalone service that analyzes images and uploads the result to Docker Scout. You can view the results using the Docker Scout web UI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/0*XPUl9hOanY5CCYDZ.png" /></figure><ul><li>It also allows you to get base image updates and recommended tags and digests, and filter your images on vulnerability information.</li></ul><p>Please note that Docker Scout is an <a href="https://docs.docker.com/release-lifecycle/#early-access-ea">early-access product</a>, and requires a Pro, Team, or Business subscription.</p><h3>Getting Started with Docker Scout</h3><h3>Pre-requisites</h3><ul><li>Docker Desktop 4.17</li><li>Requires a Pro, Team, or Business subscription</li><li>Enable Docker Scout on Docker Hub</li></ul><h3>Enabling Docker Scout on Docker Hub</h3><ul><li>Login to <a href="https://hub.docker.com/">https://hub.docker.com</a></li><li>Choose the organization that contains the repository with the image(s) you want to analyse.</li><li>Select a repo, and open the “Settings” tab.</li><li>Under “Image insight settings”, choose “Advanced image analysis with Docker Scout.”</li><li>View your image analysis.</li></ul><h3>Command Line Tool for Docker Scout</h3><p>Using the CLI, you can analyze images and view the analysis report in text format. You can print the results directly to stdout, or export them to a file using a structured format, such as Static Analysis Results Interchange Format (SARIF).</p><pre>docker scout</pre><pre>Usage:  docker scout COMMAND</pre><pre>Command line tool for Docker Scout</pre><pre>Commands:<br>  cves        Display CVEs identified in a software artifact<br>  version     Show Docker Scout version information</pre><pre>Run &#39;docker scout COMMAND --help&#39; for more information on a command.</pre><h3>Checking the Version</h3><pre>docker scout version<br>version: v0.6.0 (go1.19.5 - darwin/arm64)<br>git commit: aabe2bfd192f7ac8cbfa4afea647b4dc41d3d30d</pre><h3>Displaying CVEs identified in a Software artifact</h3><p>The docker scout cves command analyzes a software artifact for vulnerabilities. The tool analyzes the provided software artifact, and generates a vulnerability report.</p><pre>Usage:  docker scout cves [OPTIONS] IMAGE|DIRECTORY|ARCHIVE</pre><h3>Supported Artifacts Types</h3><p>The following artifact types are supported:</p><ul><li>Images</li><li>OCI layout directories</li><li>Tarball archives, as created by docker save</li></ul><h3>Images</h3><p>The tool analyzes the provided software artifact and generates a vulnerability report. By default, the tool expects an image reference, such as:</p><ul><li>redis</li><li>curlimages/curl:7.87.0</li><li>mcr.microsoft.com/dotnet/runtime:7.0</li></ul><p>If the artifact you want to analyze is an OCI directory or a tarball archive, you must use the — type flag.</p><p>Examples:</p><h3>Display vulnerabilities grouped by package</h3><pre>docker scout cves redis<br>Analyzing image redis<br>    ✓ Pulled<br>    ✓ Image stored for indexing<br>    ✓ Indexed 144 packages<br>    ✗ Detected 19 vulnerable packages with a total of 56 vulnerabilities</pre><pre>  0C   16H    4M    1L  stdlib 1.18.2<br>pkg:golang/stdlib@1.18.2</pre><pre>    ✗ HIGH CVE-2022-30580 [Improper Control of Generation of Code (&#39;Code Injection&#39;)]<br>      <a href="https://dso.docker.com/cve/CVE-2022-30580">https://dso.docker.com/cve/CVE-2022-30580</a><br>      Affected range : &gt;=1.18.0<br>                     : &lt;1.18.3<br>      Fixed version  : 1.18.3<br>      CVSS Score     : 7.8<br>      CVSS Vector    : CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H<br>...<br>...<br>The image contains 19 packages with one or more vulnerabilities for a total of 50 vulnerabilities<br>  LOW      | 28<br>  MEDIUM   | 4<br>  HIGH     | 18<br>  CRITICAL | 0</pre><h3>Display vulnerabilities from a docker save tarball</h3><pre>$ docker save redis &gt; redis.tar</pre><pre>docker scout cves --type archive redis.tar<br>Analyzing archive redis.tar<br>    ✓ Archive read<br>    ✓ Image stored for indexing<br>    ✓ Indexed 144 packages<br>    ✗ Detected 19 vulnerable packages with a total of 56 vulnerabilities</pre><pre>  0C   16H    4M    1L  stdlib 1.18.2<br>pkg:golang/stdlib@1.18.2</pre><pre>    ✗ HIGH CVE-2022-30580 [Improper Control of Generation of Code (&#39;Code Injection&#39;)]<br>      <a href="https://dso.docker.com/cve/CVE-2022-30580">https://dso.docker.com/cve/CVE-2022-30580</a><br>      Affected range : &gt;=1.18.0<br>                     : &lt;1.18.3<br>      Fixed version  : 1.18.3<br>      CVSS Score     : 7.8<br>      CVSS Vector    : CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H<br>....<br>...<br></pre><pre>The image contains 19 packages with one or more vulnerability for a total of 50 vulnerabilities<br>  LOW      | 28<br>  MEDIUM   | 4<br>  HIGH     | 18<br>  CRITICAL | 0</pre><h3>Display vulnerabilities from an OCI directory</h3><pre>$ skopeo copy --override-os linux docker://alpine oci:redis</pre><pre>skopeo copy --override-os linux docker://alpine oci:redis<br>Getting image source signatures<br>Copying blob af6eaf76a39c done<br>Copying config 62aab729a2 done<br>Writing manifest to image destination<br>Storing signatures</pre><pre>docker scout cves --type oci-dir redis <br>Analyzing OCI directory redis<br>    ✓ OCI directory read<br>    ✓ Image stored for indexing<br>    ✓ Indexed 19 packages<br>    ✓ No vulnerable package detected</pre><h3>Export vulnerabilities to a SARIF JSON file</h3><pre>$ docker scout cves --format sarif --output redis.sarif.json redi</pre><h3>References</h3><ul><li><a href="https://www.docker.com/blog/docker-desktop-4-17-new-development-functionality/">Docker Scout Announcement Blog</a></li><li><a href="https://dso.docker.com/scout-intro">https://dso.docker.com/scout-intro</a></li><li><a href="https://docs.docker.com/scout/">Scout Docs</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b79831b01795" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>