<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mokhutso Manaswe</title>
    <description>The latest articles on Forem by Mokhutso Manaswe (@learningwithmokhutso-dev).</description>
    <link>https://forem.com/learningwithmokhutso-dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1061702%2F5c717b77-dc79-4b29-983c-56f513553430.jpg</url>
      <title>Forem: Mokhutso Manaswe</title>
      <link>https://forem.com/learningwithmokhutso-dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/learningwithmokhutso-dev"/>
    <language>en</language>
    <item>
      <title>Documentation on my success to deploy web application to a featured Kubernetes environment.</title>
      <dc:creator>Mokhutso Manaswe</dc:creator>
      <pubDate>Sun, 21 May 2023 22:18:51 +0000</pubDate>
      <link>https://forem.com/learningwithmokhutso-dev/documentation-on-my-success-to-deploy-web-application-to-a-featured-kubernetes-environment-1nlm</link>
      <guid>https://forem.com/learningwithmokhutso-dev/documentation-on-my-success-to-deploy-web-application-to-a-featured-kubernetes-environment-1nlm</guid>
      <description>&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Download and Install Docker &lt;/li&gt;
&lt;li&gt;Download and install Docker desktop&lt;/li&gt;
&lt;li&gt;IDE (Visual Studio Code)&lt;/li&gt;
&lt;li&gt;Sign-up to Docker Hub &lt;/li&gt;
&lt;li&gt;Install compose plugin&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Get app
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cloned node.js todo wep app &lt;a href="https://github.com/Mokhutso-dev/containerise-todo" rel="noopener noreferrer"&gt;github&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Build the app’s container image
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the app directory created a Dockerfile&lt;/li&gt;
&lt;li&gt;Added the folowing content to the Dockerfile [image]&lt;/li&gt;
&lt;li&gt;Build the container image &lt;code&gt;docker build -t sca-project&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Started the app container &lt;code&gt;docker run -dp 3000:3000 sa-project&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Opened web browser to &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;localhost&lt;/a&gt; to see the app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybktqg30vjhsj28hh37w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fybktqg30vjhsj28hh37w.png" alt="localhost3000" width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Share application
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Created docker repository [image] on Docker Hub &lt;a href="https://hub.docker.com/r/mokhutso/sca-project/tags" rel="noopener noreferrer"&gt;docker-repo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Docker login -u my_username&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker tag sca-project my_username/sca-project&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker push my_username/sca-project&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Persist the database
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker volume create todo-db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker run -dp 3000:3000 –mount type-volume, src=todo-db,target=/etc/todos sa-project&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Got to see my list being stored &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;docker volume inspect todo-db&lt;/code&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Run app in a development container with a bind mount
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -dp 3000:3000 \
    -w /app --mount type=bind,src="$(pwd)",target=/app \
    node:18-alpine \
    sh -c "yarn install &amp;amp;&amp;amp; yarn run dev"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -dp 3000:3000 `
    -w /app --mount "type=bind,src=$pwd,target=/app" `
    node:18-alpine `
    sh -c "yarn install &amp;amp;&amp;amp; yarn run dev"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker logs -f &amp;lt;container-id&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Make changes to app.js , save file (restarts the app inside the container automatically)&lt;/li&gt;
&lt;li&gt;Refresh the pages and saw my changes being reflected almost immediately&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Multi container apps
&lt;/h3&gt;

&lt;h2&gt;
  
  
  - &lt;code&gt;docker network create todo-app&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \
     --network todo-app --network-alias mysql \
     -v todo-mysql-data:/var/lib/mysql \
     -e MYSQL_ROOT_PASSWORD=secret \
     -e MYSQL_DATABASE=todos \
     mysql:8.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker exec -it &amp;lt;my-sql-container-id&amp;gt; myqsl -u root -p&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Into mysql shell -&amp;gt; show databases; (don’t forget the semi-colons or else nothing will be displayed)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Exit&lt;/code&gt; the mysql shell&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Connect mysql
&lt;/h3&gt;

&lt;h2&gt;
  
  
  - &lt;code&gt;docker network create todo-app&lt;/code&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d `
     --network todo-app --network-alias mysql `
     -v todo-mysql-data:/var/lib/mysql `
     -e MYSQL_ROOT_PASSWORD=secret `
     -e MYSQL_DATABASE=todos `
     mysql:8.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Docker logs -f &amp;lt;container-id&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker exec -it &amp;lt;my-sql-container-id&amp;gt; myqsl -p todos&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8agb3r8kmjhd20nxo20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8agb3r8kmjhd20nxo20.png" alt="mysql" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Into mysql shell -&amp;gt; &lt;code&gt;select * from todos_items&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Exit&lt;/code&gt; the mysql shell&lt;/p&gt;
&lt;h3&gt;
  
  
  Docker compose
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;docker compose version&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the root folder created docker-compose.yml&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Insert into docker-compose.yml file&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;services:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Define the app service
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;docker-compose.yml file should look like:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;services:
  app:
    image: node:18-alpine
    command: sh -c "yarn install &amp;amp;&amp;amp; yarn run dev"
    ports:
      - 3000:3000
    working_dir: /app
    volumes:
      - ./:/app
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos

  mysql:
    image: mysql:8.0
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos

volumes:
  todo-mysql-data:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Run the application stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker compose up -d&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;See the app stack in docker desktop dashboard&lt;/p&gt;
&lt;h3&gt;
  
  
  Describe apps using kubernetes yaml
&lt;/h3&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create deployment.yaml in the app root folder&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fill deploment.yaml with this code&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;apiVersion: apps/v1
kind: Deployment
metadata:
  name: bb-demo
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      bb: web
  template:
    metadata:
      labels:
        bb: web
    spec:
      containers:
      - name: bb-site
        image: getting-started
        imagePullPolicy: Never
---
apiVersion: v1
kind: Service
metadata:
  name: bb-entrypoint
  namespace: default
spec:
  type: NodePort
  selector:
    bb: web
  ports:
  - port: 3000
    targetPort: 3000
    nodePort: 30002
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Create and monitor deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Enabled Kubernetes on Docker Desktop setting&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Kubectl apply -f deplyment.yaml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Kubectl rollout status deployment/app-deployment&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04d48w5eslix3dvn1kt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04d48w5eslix3dvn1kt9.png" alt="deploy" width="800" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now can access the app with the yaml configuration nodePort :30002&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1u12bxy1r3pzduvlb4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1u12bxy1r3pzduvlb4w.png" alt="30002" width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Kubectl get deployments&lt;/code&gt; -&amp;gt; view pods configured by yaml file]&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Kubectl get pods&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Kubectl get services&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Kubectl describe deploments&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwls4xwibu9ho3dyxva18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwls4xwibu9ho3dyxva18.png" alt="monitor" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Scale deployment
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Kubectl scale deployment/app-deployment –replicas=3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Horizontal pod autoscaling&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Kubectl autoscale deployment/app-deployment –min=3 –max–10 –cpu-percentage=80&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fru6x0bfrcc67l01v8lul.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fru6x0bfrcc67l01v8lul.png" alt="scaling" width="800" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>kubernetes</category>
      <category>deploy</category>
    </item>
    <item>
      <title>How I built and deployed Azure static web app with GitHub</title>
      <dc:creator>Mokhutso Manaswe</dc:creator>
      <pubDate>Fri, 21 Apr 2023 13:21:20 +0000</pubDate>
      <link>https://forem.com/learningwithmokhutso-dev/how-i-built-and-deployed-azure-static-web-app-with-github-1ip6</link>
      <guid>https://forem.com/learningwithmokhutso-dev/how-i-built-and-deployed-azure-static-web-app-with-github-1ip6</guid>
      <description>&lt;h2&gt;
  
  
  Azure Static Web App
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ayastkpsq30gda7lwus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ayastkpsq30gda7lwus.png" alt="Azure" width="800" height="327"&gt;&lt;/a&gt;&lt;br&gt;
Azure Static Web Apps is a service that automatically builds and deploys full stack web apps to Azure from a code repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  Most popular features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Web hosting for static content like HTML, CSS, JavaScript, and images.&lt;/li&gt;
&lt;li&gt;First-class GitHub and Azure DevOps integration that allows repository changes to trigger builds and deployments.&lt;/li&gt;
&lt;li&gt;Generated staging versions powered by pull requests enabling preview versions of your site before publishing.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GitHub account&lt;/li&gt;
&lt;li&gt;Install Git&lt;/li&gt;
&lt;li&gt;Azure account&lt;/li&gt;
&lt;li&gt;Visual Studio Code&lt;/li&gt;
&lt;li&gt;Azure Static Web Apps extension for Visual Studio Code&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Create a repository
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;On GitHub.com, navigate to the &lt;a href="https://github.com/Mokhutso-dev/Static-Web-App" rel="noopener noreferrer"&gt;static-web-app&lt;/a&gt; repository.&lt;/li&gt;
&lt;li&gt;In the top-right corner of the page, click Fork.&lt;/li&gt;
&lt;li&gt;Under "Owner," select the dropdown menu and click an owner for the forked repository.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp1vqn16o9452z61xqqc5.png" alt="fork" width="463" height="87"&gt;
&lt;/li&gt;
&lt;li&gt;Click Create fork.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90oy673ng2emjuglclsk.png" alt="create" width="475" height="187"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Clone the repository
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;With the repository created in your GitHub account, clone the project to your local machine using the following command.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Command Line or terminal&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;git clone https://github.com/&amp;lt;YOUR_GITHUB_ACCOUNT_NAME&amp;gt;/Static-Web-App.git&lt;/code&gt;     &lt;strong&gt;replace&lt;/strong&gt; &lt;code&gt;&amp;lt;YOUR_GITHUB_ACCOUNT_NAME&amp;gt;&lt;/code&gt;  &lt;strong&gt;with your GitHub username&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Next, open Visual Studio Code and go to File &amp;gt; Open Folder to open the cloned repository in the editor.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdjxtyy6w67h37yi9j4bg.png" alt="vscode" width="486" height="223"&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Install Azure Static Web Apps extension
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Select View &amp;gt; Extensions.&lt;/li&gt;
&lt;li&gt;In the Search Extensions in Marketplace, type Azure Static Web Apps.&lt;/li&gt;
&lt;li&gt;Select Install for Azure Static Web Apps.&lt;/li&gt;
&lt;li&gt;The extension installs into Visual Studio Code.
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12qkignyvzb8bq0lcwgp.png" alt="extension" width="800" height="376"&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Create a static web app
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Inside Visual Studio Code, select the Azure logo in the Activity Bar to open the Azure extensions window.             &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The extension will prompts you to sign in to Azure and GitHub in Visual Studio Code to continue. If you are not already authenticated.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Press F1 to open the Visual Studio Code command palette.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter Create static web app in the command box.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswcz53oag74wxy6ptk2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswcz53oag74wxy6ptk2i.png" alt="pallete" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select Azure Static Web Apps: Create static web app and select Enter. &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2886873jvtoqe04578ra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2886873jvtoqe04578ra.png" alt="f1" width="800" height="202"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fid2ton2qlu2jk5ezapyv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fid2ton2qlu2jk5ezapyv.png" alt="values" width="355" height="163"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7y3sqd0q5e4jaajnzovz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7y3sqd0q5e4jaajnzovz.png" alt="5_5" width="800" height="209"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the app is created, a confirmation notification is shown in Visual Studio Code.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjt6y5l5ory66n5onmg1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frjt6y5l5ory66n5onmg1.png" alt="success" width="800" height="131"&gt;&lt;/a&gt;      &lt;em&gt;Once the deployment is complete, you can navigate directly to your website.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To view the website in the browser, right-click the project in the Static Web Apps extension, and select Browse Site.&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fgwtsgjwqn8dr2np8je.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8fgwtsgjwqn8dr2np8je.png" alt="production" width="795" height="592"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Azure Portal overview
&lt;/h3&gt;

&lt;p&gt;To view full details about your static web app you just deployed: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to &lt;a href="https://portal.azure.com/#home" rel="noopener noreferrer"&gt;Azure portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Select Static Web Apps&lt;/li&gt;
&lt;li&gt;Select Overview
&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdyfhsc3m4qwjbhcibgaw.png" alt="overview" width="800" height="310"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Clean up resources
&lt;/h4&gt;

&lt;p&gt;If you're not going to continue to use this application, you can delete the Azure Static Web Apps instance through the extension.&lt;/p&gt;

&lt;p&gt;In the Visual Studio Code Explorer window, return to the Resources section and under Static Web Apps, right-click Static-Web-App and select Delete.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2o7xar68rxj2339fgzg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft2o7xar68rxj2339fgzg.png" alt="delete_web" width="652" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Congratulations you have built and deployed your first Azure Static Web App.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading🤝. Feel free to leave your questions and/or comments (if any). &lt;a href="https://www.linkedin.com/in/mokhutso-manaswe-381623219/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;           &lt;a href="https://dev.to/mokhutso-dev"&gt;Dev.to&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>azure</category>
      <category>staticwebapps</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
