How to use Docker server to deploy / update winforms application? - docker

I'm looking for some advice on where I can learn to setup a Docker server to deploy / update a Winforms app. I've been on youtube, docker forums and different sites but they want to run the app they make from docker or "dockerize" the app. I don't want to do that, I just need it to host some files that can be used for updating through the apps auto update feature. Any resources or help would be super helpful, thank you.

Related

Example of web development local and production environment sample setup and workflow

I am working on moving our existing websites from a shared hosting to a VPS and then they will be redeveloped and improved using Laravel. My background is not software development, I have however a decent understanding of web development (enough to make a blog, CMS etc) BUT I have never worked in a web dev team so I don't know how things should be done "properly".
Locally I have always used XAMPP and remotely it has always been as basic as publishing files via Filezilla.
Now I have been required to do:
Version control - the changes to the website should be reviewed by a second (non technical person) before going live
Develop a system based on Laravel
What I am struggling to understand is how Ubuntu Server, GIT, Docker, Kubernetes, NGINX etc. all work together. Basically I don't know what "the big picture" looks like, how a decent workflow should look like.
So far I have manually installed all the necessary software to run Laravel on the VPS (the LAMP stack) but soon after I started to run into problems (libraries that are activated locally are not activated remotely). It has also become clear that software updates and differences between my local environment and remote (production environment) will make the issues worst over time.
Can someone explain in VERY general terms, how things should fit together so that my setup is both resilient, robust and scalable? For example:
Install docker on the server and on your computer
Download such and such image
connect GIT in such and such way
Enable unattended-upgrades
The more I read the more I get confused.
What I would like is a simple guide/idea on how things should be done properly.

Is it possible to do development of Dapr based applications without using Docker Desktop?

Based on the documentation for Dapr mentioned at :https://learn.microsoft.com/en-us/dotnet/architecture/dapr-for-net-developers/getting-started . It looks like Docker Desktop is mandatory perquisite as part of Dapr setup in local environment.
The Docker company recently announced that it would be making changes in its Docker Desktop subscription terms. With this update it is not possible to install Docker Desktop in the local development environment. Can anyone help me to know how to continue Dapr based application development without Docker Desktop in this case.
Can anyone help me here by providing their guidance?

How to host a web app locally on my computer

I have created a web app and I want to have it hosted locally on my computer so I can go to the browser and type https://localhost:<port number> and it will load up. However I am not sure how to do this or if it is even possible. My issue is I am not entirely sure what I need to google to get the answers and advice.
A little about what I have created and want to achieve:
This web app is written in Angular with a Spring Boot back end that it calls with all the functionality (it is a little overkill but the aim was to learn Java and Spring Boot, I could have technically done it all in the front end)
The data for this web app is stored in a MongoDB that is on my laptop
I currently run npm run dev when I have been developing it which is concurrently \"java -jar jars/java-fuel-consumption-api.jar\" \"npm start\" \"ng serve --proxy-config proxy.conf.json --open\"
I am not interested in having it hosted for others to use, it is just a simple personal project that I have written to help me learn JS and Spring Boot more
I have a MacBook Air so I am not sure if there is anything already installed from Apple that can help
I have got some experience of Docker and wouldn't say no to trying to learn a bit more
I want it to be running in the background so I can just access it any time without doing an npm run ... command but have the ability to stop it when required (for updates and fixes)
Not bothered about the URL - I assume that as it is being hosted on my computer it will just be localhost
I want to avoid AWS/Azure with the reason is that I don't want to pay! It works by doing npm run dev but I just want to have it in a more professional manner
Sorry for the vauge question but I am in need of some advice of where to start - I know the end goal but like with most things like this I have little experience in how it needs to be acheived! Help to be pointed in the right direction is most appreciated.
You can use XAMPP, it's a, simple to install, Apache Server with DB: https://www.apachefriends.org/download.html
This will allow you to host anything locally.
Another option would be AWS, they offer some test/trial servers as well.

Is possible to deploy existing app to Docker?

I have existing MEAN stack application. I found more tutorials, but I cannot find anything about deploying existing app to Docker. Is this possible?
As long as you can get the sources of your project on your deployment platform (the Ubuntu server), you can then follow the guide "Dockerizing a Node.js web app".
It shows how to create a simple web application in Node.js, then build a Docker image for that application, and lastly run the image as a container.
You can see a more complete example at Semaphore.

Use Docker rather than native/homebrew on Mac?

I currently have a LAMP stack installed on my mac running through Homebrew, which, to be honest hardly ever get's used.
Lately I have been working a lot with AngularJS and service based apps, so generally run the sites through a gulp / nodeJS based webserver.
I am totally frontend orientated, so very rarely do I play with backend related technologies other than the odd Drupal site and mysql.
I am interested to learn more NodeJS, perhaps even some Ruby, purely to understand programming more - not really for it to become my new job description.
So reading up on NodeJS a bit last night I read a lot about Docker, and installed it the toolkit and gui this morning. It looks pretty neat!
My question is: Would it work better for me to just run everything I need through Docker? For example, I can just install the mysql container, and turn it on when I need a db, and just spin up a drupal instance when I need one and connect it to my db instance?
I understand that running Docker on Mac is slower as it doesn't have the native Linux kernel and runs through a VM - but considering my needs from it, this should be okay?
I love the idea of just deploying containers, so will probably want to install Docker on my hosting environment too (VM in the cloud).
Follow up question: 90% of the sites I work on are AngularJS based frontends that speak to APIs that our backend guys build separately. Would it be overkill to have a Docker for each of those sites, or would I rather just run them all in one, or just bypass docker entirely for that (as I mentioned, I normally just load them up from within my Gulp's webserver)
Thanks a lot. I realise this is a n00b asking questions about big technology, but I'm trying to wrap my head around it and hopefully grow a bit in the process.
The interest in deploying Docker container is reproducibility.
You can easily reproduce:
either a complex development environment requiring the installation of numerous libraries (that you don't want to pollute directly your host)
or an execution environment, for a given tool to run (like a web server)
If you are not likely to repeat a setup (for dev or exec), a docker container would bring little value.
But if you want to keep track of the exact specification of an environment (through its Dockerfile) and will deploy it not just on your workstation, but in other places as well, then docker is certainly a good option to consider.

Resources