REVIEW: Ultra fast web development with Docker in Wappler

What is Docker?

You must have heard of Docker. This brand new technology allows you to run any application quickly and easy without any installation hustle.

Docker empowers developers to quickly run their website or app in the required environment in seconds. It also makes the live deploy really easy. You can quickly and easy scale up your app depending on its needs.

The powerful Docker technology was till now reserved to highly technical people and command line lovers - but no longer! Its powers are now available in Wappler - the Visual way!

Docker Integration in Wappler

With Wappler we are committed to provide you the best experience and visual tools you need to be able to produce beautiful solutions with less technical hustle. So Docker is a natural fit.

Instant installation

No more local installation of WAMP, MAPM with PHP, MySQL or other web and database servers that you might need to run your local development. Wappler does it all for you! All thanks to Docker.

Now you just need to have Docker Desktop installed and everything else is a single click in Wappler!

Your choice of services

You need specific web server with PHP or specific database like MySQL or PostgreSQL? Just make the choice in your Wappler project options and everything gets installed directly!

You can even have different services per project target! Wappler takes care of it all! No more complicated local installations to get your development environment up and running!

Finally we can offer you ready to go full stack solutions in Wappler! Including the required web servers and databases - out of the box!

Powerful Sample Projects

You can choose your custom settings or choose any of the included Sample Projects - that now include all the web servers, databases and sample data ready to go!

This is also great advantage to the Wappler community that will be able to share their projects, including all the required server configuration and sample data! So other users can just get the project and run it directly! Everything will be setup directly without any hustle thanks to Docker!

Getting Started

It is super easy to enable the Docker integration in Wappler. Just install Docker Desktop for your OS and you are ready!

Setup your target

So now that you have Docker installed, you can use its power to define your development environment.

In Wappler you do that with in your Project Settings / Targets:
on your target - just choose the type as “Docker Engine”

Previously we were supporting just own servers (still available as type “Own Server”) that you had to have installed separately, but that is no longer needed! Wappler installs and launches the servers you need!

So make your choice:

Just choose which Web Server, Language and Database you want to use, or accept the defaults and you are ready to go!

The Docker toolbar

When you save you project settings with the docker settings, just switch to the target you have defined and you will see a special Docker toolbar in Wappler:

You are single click away from application deploy, so just click on the Launch (rocket) icon:

image

The magic happens now, you can expand the panel below to see what is going on, all required services get downloaded once and then launched!

Don’t worry if initially it takes a bit longer and you see lots of things getting downloaded. This is all Docker being really smart and downloading only the peaces it needs. Everything is cached than so on next launches all the standard images it downloads from the official repositories are getting reused.

What just happened? All Services are up!

You might wondered what happened is everything really up and running?

Well yes all the required services that you choose, like Apache, PHP and MySQL got downloaded from their official distributions, got installed locally and launched! Magic!

No complicated configurations - just launch! You have now a perfect web development environment setup for you!

Lets try it our and launch your web project, just open in the browser:
http://localhost:8100

You should see your main page delivered by the services you choose.

Toolbar Actions

Next to the Launch action, you will see also other actions like start, stop, restart, kill and show logs.
Those control the services you are running.

What about Databases?

So you selected to use a database as well? Than the database is also up and running!
And Wappler even created a Server Connect - Database Connection file for you to use directly!

A special note here is that from the web server you database host is called just “db”

Accessing Database with external tools

When you need to access you database with external management tools, you just specify the same connection info you have defined in the target options. With localhost as address and the database port specified (default 9906)

Different Servers per Project Target

Yes having different configuration is now all possible.

When you switch targets in Wappler - the previous servers will be auto stopped and the new one will auto start! It is that simple!

Conclusion

So now you can discover the great powers of Docker build into Wappler. Try it out and let is know what you think.

If you want to learn more about Docker and its insights, see:


It is good to know as a background - you don’t have to know all those commands our of your head! Wappler does it all for you!

Continue to read Part 2 of the full Docker tutorial.

14 Likes

Wowwwww
Thanks a lot @George @patrick @Teodor

Wappler Team:

image

3 Likes

We have quite a few Clients inquiring about adopting Docker due to its scalability and migratory abilities. Perfect timing once again Wappler! :smiley:

2 Likes

This seems really complex. Is this only for if you require a local server setup? I will have to do some exploring but this seems it is something that is over my head. Obviously a huge step for Wappler though! You guys are amazing.

Thanks to Wappler - Docker is now super easy to use! Easier than installing MAMP/WAMP and you don’t need those any more.

@brad, I agree. I just read (well skimmed) the two links @George posted and I will need to dive more into it to fully understand it. Of course Wappler makes it easier to use, but full appreciate is something else.

For example, Is Docker to be used as the test environment or is it capable of being the production environment? If production, can it take on the web role, database role, and email role at a price competitive with traditional web hosting providers?

But if we already have these installed (WAMP in my case) are you advising us to remove our current installations and replace with Docker for current projects?

If we should keep our existing installations, then what about any new projects?
Do we use existing set-up or use Docker just for new projects?

@UKRiggers,

I think this is an alternative to XAMP/WAMP/MAMP. There were a lot of users coming from other hmm areas that were asking how to set up a web environment including database setup. They were unfamiliar with how to set up XAMP/WAMP/MAMP and the like and so the Wappler team came up with this to make it easy for those users not as familiar with the process to do so.

1 Like

It’s just an alternative :slight_smile: you are not supposed to uninstall your local server if you are working locally with it.
It’s a nice alternative especially for people who don’t know what a web server is or how to set up one. It even comes with sample data in the database tables and auto creates the database connection for you, so just hit a button and you have a web server, database and sample data available directly in Wappler.

2 Likes

I will play with it on a test site. Really scared to try new things on my main project. Like do I have to set up my database manually in both my production server and Docker? If I make a change in one does it change the other?

Docker is perfect for local development as it setups everything you need super fast and reliable, but it is even more powerful for deployment to live production servers.

That is why the biggest cloud providers like AWS, Google and Microsoft are switching and already offering great scalable Docker deployment.

With Docker and its stack of containers of all the services you need, deployment is fast and reliable and very scalable.

With the same ease you can run a single instance as well 1000 web server instances in a Swarm! With automatic loadbalancing of all the visitors!

In Wappler we offer for now just the local development part but will get to the live deploy as well soon.

For now you can use perfectly a combination of local docker development and normal FTP deploy to your regular hosting.

3 Likes

Interesting so its on the road map to integrate with externally hosted docker services? I assume this is also the groundwork for the integrated DB builder etc? Really nice work guys you sure do implement features lightning fast!

2 Likes

Exactly! You nailed it! We are building a solid base here :slight_smile:

3 Likes

I know very little about Docker, but I’ve installed the Windows versions and selected it for a new target, using Apache, MySQL and PHP with default settings. These errors appeared:

ERROR: for www__docker_local_db_1 Cannot create container for service db: b’Drive has not been shared’
ERROR: for db Cannot create container for service db: b’Drive has not been shared’
ERROR: Encountered errors while bringing up the project.
Error Launching Services!<

Could this be because I left the default container type as Linux? I don’t have any plans to deploy using Docker at the moment (because I know so little about it), but if I did, it’s more likely to be on a Linux machine. I assumed that Windows as wasn’t the default container type, that it wouldn’t have to be set to use Windows containers (but perhaps it does).

This project already has a database set up, using WAMP. I was curious about how this would work. Perhaps I need to do more research first, but I thought I would dive in to see what happened.

Wow Wappler…Amazing stuffs, just like that…you guys are crazy…what a quick implementation Wappler with Docker, market fever inside Wappler only… keep it up guys, i’m going to give a try…Appreciate the hard works for all Wappler team…:kissing_heart::clap::clap::clap::clap::clap::clap::clap::clap::clap::clap::clap::clap::clap:

1 Like

If I select IIS as the webserver and ASP, is there no MS SQL (Express) DB?

Hi @TomD ,
Just open Docker desktop settings and under drive sharing options enable one of your drives :slight_smile:
Also with Docker for Windows you can run it pretty well without Linux.

You just need to define docker as an additional target in your site configuration.

You were asked to give permissions to Docker to access your drive - you should allow it. This can be still done in the Docker Settings / Shared drives.

And the subsystem must be Linux - as everything in Docker is running in super light Linux containers even on Windows.

image

incrible!!

2 Likes