Deploying ArcGIS Server using Docker

10-07-2015 04:53 PM
Occasional Contributor

Has there any been thought to deploying ArcGIS Server as a Docker container? Any plans to curate an official Docker image?

15 Replies
Esri Esteemed Contributor

Hi Jeremy,

There are no current plans to enable ArcGIS Server to support the Docker platform​ at this time.

Hope this helps,

Occasional Contributor

If you can petition for such a step, that would be great. Those deploying in a continuous deployment environment are increasingly turning to such container-driven technologies to increase the reliability of these deployments. Having Server work in this world would be great. With Microsoft supporting Docker inside Windows Server, this should become easier and easier.

Esri Esteemed Contributor

Hi Jeremy,

This is the first time I have heard this request. Please post your suggestion here:

Esri Arcgis Ideas | Ideas Submission Portal

Hope this helps,

0 Kudos
Frequent Contributor

I saw this not too long ago, haven't tried it yet. Totally unsupported, but apparently someone got AGS running in Docker

hwernstrom/arcgisdocker · GitHub

New Contributor

That was me, I would love to hear feedback from others.

New Contributor

I managed to get AGS working using that Dockerfile, but I forked the repo and made a few changes to make it easier to use.

For one, I added a startup script so that AGS starts with the container and so that signals are handled properly. Also, I rewrote some of the RUN statements in the Dockerfile related to dependency installation.

Check it out here:

Occasional Contributor III
Occasional Contributor II

I am currently working on a Docker solution. I started with 10.5, now am working with 10.5.1.

I have ArcGIS Server, Portal For Server, Web Adaptor, and ArcGIS Datastore running now in Docker containers. I am working on the myriad details but things are already limping along. I have to do a little hand waving (like what you see in conference live demos 🙂 but I can get them all spun up and hooked together. All software is installed, licensed, and configured automatically. More or less. I know that it can be done and am trying to get everything going before worrying about polishing each part.

You can see the work on github, look here: geo-ceg/docker-  You will see some incomplete open source dockers for things like geoserver and geogig there. Ignore those for now! The ones I am working on are docker-arcgis-server, docker-portal-for-arcgis, docker-web-adaptor, and docker-arcgis-datastore.

Once I am done I will be able to mix and match - run everything on a laptop for portable testing, or spread dockers out over multiple machines for load balancing. Or test clustering out by spinning up multiple AGS containers...

I have been ignoring rather big issues until I have the entire suite running. For example, usernames/passwords and hostnames. I am learning minutiae of ArcGIS Enterprise 10.5.1 and Docker while I do this. I see how to do it now so I am not worried about it. (Persisting data is a huge problem, read on for more on that.)

ArcGIS Enterprise is an onion, you knew that already if you have tried to install it! I keep peeling off another layer saying "once this layer is done, I will write a splendid blog posting to tell everyone about it"... then I discover another required layer inside... currently I am trying to set up Datastore with an RDBMS so that I can connect it to a Site and then create a Hosted Server and then connect that to Portal... I think I said that correctly.

Microsoft provides SQL Server in a Docker, I plan on trying that as the RDBMS.

Sometimes I read and attempt to follow ESRI docs only to try something and discover some things are fundamentally wrong. For example, they say Web Adaptor is an optional accessory, (maybe it was in earlier releases?) but when I try to use a reverse proxy instead, Portal firmly says "WHERE IS YOUR WEB ADAPTOR? I NEED ONE."  So -- I added the Web Adaptor layer. Maybe somehow there is a workaround but creating the Docker for it was pretty straightforward... once I learned how to automate creation and installation of self-signed certificates for Tomcat. And also that Tomcat HAS TO RUN on ports 80/443 - the installer scripts die if you don't set it up that way. And that required learning about authbind, such fun!

The stickiest part right now is that every time I spin up an ArcGIS Server container, I have to create a new site. Per the documentation,  I can persist the files in config-store/ and directories/ but it matters not! When I start a container the best I can get is "I see those files you persisted and you must delete them or I won't start!". Such petulant software!

I thought I would try using the official backup/restore scripts. I made a backup, spun up a new container, tried to do a restore and it said "I can't do a restore until you create a site." To me, this says ESRI has a very whimsical notion of "backup" and "restore". 

ANYWAY I will continue pushing my changes up to github and these dockers will get stronger and stronger. So far, so good. It's a roller coaster ride! Whee!