GitHub Copilot Customization Explained for Beginners: Instructions, Prompt Files, Skills, Agents, and Hooks Introduction If you've recently started using GitHub Copilot, you've probably come across terms like Instructions , Prompt Files , Skills , Agents , and Hooks . At first glance, they all seem to do the same thing—they tell Copilot what to do. So why does GitHub have five different customization features? The answer is simple: each feature solves a different problem. Think of GitHub Copilot as a new developer joining your team. On their first day, you don't just hand them code. You explain your coding standards, give them reusable templates, teach them specialized knowledge, assign them a role, and automate repetitive tasks. That's exactly how GitHub Copilot customization works. In this article, you'll learn what each feature does, when to use it, and how they all work together. By the end, you'll know which feature to start with and which ones can wait un...
Containerising .NET Core 3.1 Application
- Get link
- X
- Other Apps
This is continuation of a series of posts on using Docker
and containerization with .Net Core. If you are new to this series its recommended to look at Getting
started with Docker and Containers. .NET Core 3.1 released December
3, 2019 as a Long-term support release as part of this post
we will see how to containerise a Web API type application.
#Run the image
Getting Started
In this post we are going to see how to build a Container based application
and basic commands which we use everyday when working with containers.
·
Install
Docker
·
Install .NET Core
3.1 SDK
·
Visual studio 2019/ Visual studio code
·
Visual studio extension Docker to be
installed from Visual studio marketplace
Steps
For demo purpose I will be running on Docker Linux container
If you are new or first timer for Docker its recommended to use Visual
Studio because as part of creating project you have option to configure Docker
support.
1.
Open Visual studio 2019, click on “create a new
project” option select “Asp.NET Core Web Application” as shown below
2.
By clicking create your first simple Docker demo
application ready to go. If you browse through solution explorer “Dockerfile” is auto
populated for the Web API application.
Docker File description
·
FROM tells
Docker which image you want to use for your container.
·
WORKDIR tells
Docker which directory to use for performing subsequent commands.
·
COPY tells
Docker to copy a file from your local file system into the container image.
·
RUN executes
commands within the container image.
·
Docker
executes the command specified by the ENTRYPOINT
·
Use the Microsoft-provided ASP.NET core image,
which has only runtime components. Call this stage ‘base’.
·
Use the SDK image to create a release build
of the application. Call this stage ‘build’
·
Use the ‘build’ stage image to publish the
application to the ‘app/publish’ folder. Call this stage ‘publish’.
·
Dockerfile uses the SDK image to build your
application, then discards that image and uses a runtime image to run
the application.
·
Using the ‘base’ stage image, copy the contents of
the ‘app/ publish’ directory from the ‘publish’ stage. Call this stage ‘final’
In short summary Dockerfile uses SDK image to build
your application then discards that image and uses run time image for running
the application.
In case if you have existing application for which
you want to add Dockerfile it can be done easily from Visual studio/code. From
Visual studio its right click on start-up project àAdd Docker
support should add Dockerfile to existing project.
If its from Visual studio code in “Command Palette” type
“Add Docker files to workspace” should add Dockerfile to existing project.
Following command will be used for building docker image
# Build an image using the Dockerfile in the directory where it exists, replace
the place holder with appropriate image name you would like to name it.
Docker build -t <imagename> .
#Run the image
Docker run –-rm -it -p 5001:80 <imagename>
Once the container is in running state if we browse using http://localhost:5001 (because you mapped port 5001 to port 80 in your container) application will be in browsable state.
Once the container is in running state if we browse using http://localhost:5001 (because you mapped port 5001 to port 80 in your container) application will be in browsable state.
Passing Configuration to Docker
If we need to pass configuration to Docker container as environment variables
command looks like
Docker run –-rm -it -e ASPNETCORE_ENVIRONMENT=’PRODUCTION’
-p 5001:80 <imagename>
Useful commands for Docker
List of commands that will be useful when you work on Docker.
Useful commands for Docker
List of commands that will be useful when you work on Docker.
List your images
$
docker image ls
Delete specific image
$
docker image rm [image name]
Delete all existing images.
docker
image rm $(docker images -a -q)
List all existing containers (running and not
running)
docker
ps -a
Stop a specific container
docker
stop [container name]
Delete a specific container (only if stopped)
docker
rm [container name]
Delete all containers (only if stopped)
docker
rm $(docker ps -a -q)
Display logs of a container
docker
logs [container name]
Popular posts from this blog
Tidy up - Unused Project and Nuget package reference using Visual Studio 2019
If you are a Developer/Architect using Visual Studio as IDE for your development activities, this blog post will be of your interest. During the Ignite 2021 conference, Microsoft released Visual Studio 2019 v16.9 and v16.10 Preview 1. As part of version 16.10 Preview 1, one of the cool features they introduced is to "Remove Unused References..." for any Projects and Nuget packages that are not in use. At the time of writing this blog post, we have Visual Studio Version 16.10.0 (official release) which includes this new feature. As part of development, we generally get carried away and introduce new Nuget package references to your project and add new references to your Projects. By the end of development, you will not be 100% sure which are not being referenced and unused which means you will leave those unused project references in your application. Now you might be wondering what's the big deal in it since it doesn't harm. The advantage of removing unused project r...
Azure Front Door vs Azure Traffic Manager?
In my previous blog post, we looked in detail Azure Front Door (AFD) . In this blog post, let's compare Azure Front Door (AFD) with another popular Azure service named Azure Traffic Manager (ATM). Prior to AFD most of the applications made use of ATM in their architecture now with AFD being available it's good to understand in which scenarios these individual services are ideal. Azure Front Door (AFD) Azure Front Door Service (AFD) a scalable and secure entry point for the fast delivery of your global applications. Azure Front Door allows you to transform your global (multi-region) applications into robust, high-performance applications, APIs, and content. Azure Traffic Manager (ATM) Azure Traffic Manager is a DNS-based traffic load balancer for geographically distributed Datacenters. Traffic Manager uses DNS to direct traffic to endpoint based on the traffic routing method and health of the endpoints. Similarities between AFD and ATM Both Azure Services support Multi-...
Authenticate Azure Functions - API Keys
In this blog post, we will see one of the ways to secure your Azure Functions using API keys. Security plays a key role as part of SDLC (Software Development Life Cycle) doesn't matter whether it's exposed to the client/public or even if it's internal. There are multiple ways to secure your Azure Functions like API Keys, Certificate, API Mgmt, App Service Authentication, etc. If you are new to the Cloud and Azure Functions but want to make a start with minimal effort and less setup of Infrastructure, then API Keys is the ideal choice. Azure Functions allows you to secure HTTP-triggered functions by API access key in the request. As part of creating new Azure Functions, we can select the Authorization Level enum value. If we set the Authorisation level to Anonymous, no security applied which means no authentication applied for the endpoint. Authorization Level - Function By setting the Authorisation level to Function each Azure Functions require a specific API key to Au...


Comments
Post a Comment