Giter VIP home page Giter VIP logo

mapguide's People

Contributors

brucepc avatar gab-25 avatar jumpinjackie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

mapguide's Issues

Some ideas

Hi Bruce,

I saw your keen interest on a lightweight MapGuide docker image. Unfortunately my developer priorities are such that I won't be able to look at building a production quality docker image (the one I put on docker hub is really a toy). If you're happy to take on this task, then I have some ideas you could possibly explore :)

One thing I'd really like to see is a separation of the MapGuide docker image into its respective server and web tiers.

  • Server-only image
    • Must be Ubuntu14 or CentOS6 based as that is what MapGuide is built against
    • A server-only docker image that only contains the contents of /usr/local/mapguideopensource/server and /usr/local/mapguideopensource/share
    • Configurable elements
      • Listening ports
      • Volume paths for
        • External spatial data files (that MapGuide can reference through external aliases and that can be shared among multiple MG server docker containers)
  • WebTier-only image
    • Must be Ubuntu14 or CentOS6 based as that is what MapGuide is built against
    • A web-only docker image that only contains the contents of /usr/local/mapguideopensource/webserverextensions and /usr/local/mapguideopensource/share
    • Configurable elements
      • Listening HTTP port
      • 1 or more sets of server IP/ports
      • Volume paths for
        • Referencing/storing your MapGuide application's files

A killer setup with this approach would be if I can make a docker-compose.yml (or any other container orchestrator of your choice) consisting of

  • 1 WebTier container with my application files mounted
  • 1-n load-balanced Server containers
  • A PostGIS or OracleXE container that all server containers connect to

One docker-compose up would bring this load-balanced PostGIS/Oracle/MapGuide stack to life.

Exposing MG/Tomcat ports probably not necessary

MG ports are only for the Web Tier (that resides in the same container) to communicate with mgserver.

Tomcat port is only so that Apache (also in the same container) can talk to it.

Only the httpd one (8008) needs to be visible to the outside world.

stdout log redirection not working?

I see you're trying to symlink Access.log, Admin.log and Authentication.log to /dev/stdout, but I don't think that is working properly because the console output after docker run is very quiet and if I exec into the container, I see this in the Logs directory

logs

Docker port mapping (to different port) breaks QuickPlot

Something you might want to document about this container (in the readme or elsewhere)

If using docker port mapping to a different port (eg. docker run -p 80:8008 ...), QuickPlot will break as while the initial POST to PlotAsPDF.php will work, that script needs to internally make a request to GeneratePicture.php, by constructing a URL relative to the $_SERVER["SCRIPT_URI"] of PlotAsPDF.php.

As PlotAsPDF.php was accessed through its external port (80), the URL constructed to GeneratePicture.php is invalid because the httpd server inside the container is still listening on 8008.

I don't know what tricks we can use in PHP to make QuickPlot work in this type of setup. The only workaround is to map to the same port number externally

unixODBC

How install and configuration unixODBC in mapguide

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.