Deploying to Digital Ocean droplet from Azure DevOps - docker

I have a 5 docker containers under 1 project and 1 nginx container under its own project. I am able to run it locally and push it onto GitHub.
From there, I can pick it up from Azure DevOps and build a Docker Image using Docker Compose Build. However, is it possible to push it to a DigitalOcean droplet (Ubuntu20.04 with Docker installed)?

Related

Deploy docker to on-premise using azure CI-CD

I have created.NetCore Application and was successfully deployed to the local PC docker container.
Now I am trying to build it from Azure DevOps and publish it to one of my servers hosted on-premise.
Now I have no idea how to host it. Also not sure what is Docker Registry Service Connection & Container Registry Type.
My DevOps server is also hosted on-premise with no docker installed on it.
I have a docker account with one private repository.
Please suggest how to continue as I am getting the below error while building the image
open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
Thanks
Deploy docker to on-premise using azure CI-CD
If you want to deploy app to the local PC docker container, you can use Self-hosted Agent(Build Pipeline and Release Pipeline) or Deployment Group(Release Pipeline).
Note: we need set the self-agent on the server where have docker installed.
Then you could try the following pipeline settings.
Here is a blog about ASP.Net Application Deployment in Docker for Windows.
You could use Command Line Task to run the docker command. In this case, you can move the local build and deploy process to azure devops

Pull and push docker images without installed Docker

We need to transfer large number of docker images from Azure DevOps to private container registry (this registry does not have access to the Internet). For this matter there is proxy machine with Windows Server with Azure Cli and access to the Azure DevOps, but we are restricted with installing Docker there.
Is there a way to pull docker images from Azure DevOps and push them into another container registry without installed Docker? Perhaps there is slim version of Docker or some official script.
You can basically save it as an archive, and reload it the same way.

gitlab ci/cd deploy docker to aws ec2

We are developing spring boot application which is currently deploying in AWS manually. For that, first we build docker image through Dockerfile and then connect to AWS EC2 instance from laptop & then pull the image and then we use docker run to start it. But we want to automate the process using gitlab CI/CD.
We created .gitlab-ci.yml, build stage builds spring-boot application and generates jar file. Package stage then build docker images using Dockerfile from source code and then push the image to registry.
Now i don't know how to finish deploy stage. Most of the tutorials explains only about deploying into Google cloud provider. I use below steps to deploy the docker image...
ssh -i "spring-boot.pem" ubuntu#ec2-IP_address.compute-2.amazonaws.com
sudo docker pull username/spring-boot:v1
sudo docker run -d -p 80:8080 username/spring-boot:v1
Can anybody help me to add above steps into deploy stage. Do I need to add pem file into source to connect to ec2 instance.
Or is there any easy way to deploy docker in ec2 from gitlab ci/cd.
First thing, If there is ssh then it's mean you must provide the key or password by default unless you allow access to everyone.
Do I need to add pem file into source to connect to ec2 instance?
Yes, you should provide the key for ssh.
Or is there any easy way to deploy Docker in ec2 from gitlab ci/cd?
Yes, there is the easiest way to do that but for that, you need to use ECS, the specially designed for Docker container and you can manage your deployment through API instead of doing ssh to the ec2 server.
ECS is designed for running Docker container, Some of the big Advantage of ECS over ec2 is you do not need to worry about container management, scalability and availability, ECS will take care of it. provide ECR which is like docker registry but it's private and with in-network.
deploy-docker-containers

Docker image from loca dev machine on dev windows to linux machine

I have created a simple spring-boot app and created an image of it using docker build Dockerfile.
I want to upload this image to a Linux machine and spin up the container there, Where I could find the image of this app to push it to Linux machine?
I am using Docker toolbox to run docker commands on Windows 10 Home edition.
Thanks in advance.
In order to push a docker image you need a registry. Public images can be pushed through hub.docker.com. Private containers can be pushed through private registries. There are lots of registries like: nexus 3 & gitlab.
so in a nutshell you need to do:
install a docker registry on a machine which both your dev machine and prod machine can access
Configure the registry endpoints for access
login to the private registry through docker
Tag your image for the registry
push the image
go to the server
pull the image from the private registry
run it on the server
OR
without a registry
build the image again on the linux machine
run it from the linux machine from the local build
good luck

How to build docker images on AWS EC2 Windows Server instance?

We use Team City to build C# applications on a Windows server in AWS EC2.
Now there is a requirement to build Docker containers using the same system. The build steps have been tested locally and are able to produce a docker image.
Docker is not installing correctly on the server which leads to the builds failing.
Docker Edge supports Windows Server but fails on EC2 due to Hyper-V not functioning correctly.
Docker Toolbox also fails because VT-X/AMD-v are not enabled.
Is there any way to build docker images on an AWS EC2 Windows Server instance?

Resources