We are going to use a GPL licensed application as separate process inside a docker. So here's how it works:

  • Main app ships to client, it doesn't have any GPL code. Does have lots of things and manages lots of Docker images.

  • Our app CAN download and launch custom made Docker images (special purpose, we maintain docker images and they are custom built). All other docker images we have, does not include any GPL code.

  • Inside just one of the docker images a server software with GPL license will be running all the time, that's the main server software in that particular docker image (as-is)

Can we do this in our commercial app without having to publish our source code?

Basically we maintain and create the docker image, but that's not main part of our software and its completely optional and users can choose to download that docker image and run it if they want to. GPL code is not blended into our main app, its totally separate and its inside docker image. Imagine being Amazon and maintaining list of VM images you build and letting your clients download and launch instances of VM images you built that contain many GPL licensed applications.

  • Is the GPL code installed with the proprietary?
    – Putvi
    Apr 24, 2019 at 21:18
  • @Putvi What do you mean? We compile and run the GPL app as is
    – GMX Rider
    Apr 24, 2019 at 21:19
  • But do you sell it to people?
    – Putvi
    Apr 24, 2019 at 21:23
  • Its not as simple as that. We are selling a software that manages docker images (lets say, its not). We also maintain list of custom made docker images which clients can click and run which our software download our custom docker images and lunch in their network. One of them have GPL'ed server software in it (lets say Apache or Nginx-like app)
    – GMX Rider
    Apr 24, 2019 at 21:24
  • I get that the code isn't all in one and that it runs in Docker, but if it is any way packed as one you can get in trouble.
    – Putvi
    Apr 24, 2019 at 21:28

2 Answers 2


Yes you can.

What you do is called mere aggregation. Your app and the GPL container run isolated and do not share memory space: they are clearly separate programs vs parts of one program, so your app does not get infected by GPL.

  • 1
    So our code occasionally communicating with the GPL licensed server software inside the Docker is OK, right? We don't share memory space, just send/receive data from that GPL licensed server app inside docker
    – GMX Rider
    Apr 24, 2019 at 23:13
  • 1
    @GMXRider Yes, correct. IANAL though.
    – Greendrake
    Apr 25, 2019 at 0:03
  • Perfect, thank you!
    – GMX Rider
    Apr 25, 2019 at 2:21

I'm not a lawyer, I'm a software developer. Here is my understanding of how that works:

Your software does not include GPL code therefore you can license it anyway you want.

The docker images are just a way to distribute GPL binaries, so those rules will apply. In general, if you distribute binaries, you have to distribute the corresponding source code as well. GNU FAQ covers this topic here and here. I'm not sure if that means you can just put a file with a link to the repo of the project that you are distributing or you have to host the source code yourself. If I have to guess, it's the former.

  • 1
    So we host/publish the GPL server code thats running inside that particular Docker and we should be fine, right? That GPL'ed code is not core part of our app, we have not modified GPL code, we just compile and put it in the docker. So we are not violating GPL license, right?
    – GMX Rider
    Apr 24, 2019 at 21:26
  • @GMXRider - right. Apr 25, 2019 at 12:54
  • @GMXRider Yes. You are not linking to any GPL code, you are not sharing complex memory structures, etc. therefore you are not "using" GPL in your program.
    – ventsyv
    Apr 25, 2019 at 15:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .