Anyone who has an idiotproof guide to how I change the default port numbers for FME server docker install into else than 80 or 443? I plan to run this on a linux server with loads of other stuff, including a web server on port 80. Lots of other stuff that breaks if I put FME server on port 80.
I'm fairly certain I'm not the only one with this use case... I am quite baffled that port number this isn't a parameter in the installation script.
Best answer by gerhardatsafe
Hi @hektopascal,
You can change the default ports for the FME Server Web Services container with an environment variable which controls the external port:
EXTERNALPORT
The default is 443 or 80 depending on the web protocol used (https/http).
Check out this documentation for more details and other useful variables for containers:
The process stops because I can't download from quay.io (where the images are hosted). I had to fiddle around with docker proxy setting to get it to work (this recipie: https://stackoverflow.com/a/28093517 )
docker images now download OK, but it keeps insisting on using port 80 (which is busy for other stuff)
Creating fmeserver_nginx_1 ... error
ERROR: for fmeserver_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint fmeserver_nginx_1 (fa0105eb8a8608f87d811d8ca0bc07371701b7da3a1b5a50a77cf060e329ff2d): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint fmeserver_nginx_1 (fa0105eb8a8608f87d811d8ca0bc07371701b7da3a1b5a50a77cf060e329ff2d): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.
The process stops because I can't download from quay.io (where the images are hosted). I had to fiddle around with docker proxy setting to get it to work (this recipie: https://stackoverflow.com/a/28093517 )
docker images now download OK, but it keeps insisting on using port 80 (which is busy for other stuff)
Creating fmeserver_nginx_1 ... error
ERROR: for fmeserver_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint fmeserver_nginx_1 (fa0105eb8a8608f87d811d8ca0bc07371701b7da3a1b5a50a77cf060e329ff2d): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint fmeserver_nginx_1 (fa0105eb8a8608f87d811d8ca0bc07371701b7da3a1b5a50a77cf060e329ff2d): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.
@hektopascal When you disable https for the docker-compose deployment you will need to comment out port 80 in the nginx service definition of your compose file:
ports:
- '${EXTERNALPORT:-443}:8443'# HTTP to HTTPS port, enable if protocol is https and redirect is requested# - 80:8080
I think that might fix your problem. Let us know how this goes.
After banging my head I finally resolved this: For some reason, my environment variables aren't available when doing the "sudo docker-compose". I must have misunderstood something about the -s and -E flags...
Anyways, logging in as root and then setting the environment variables did the trick.
$ sudo -i
# EXTERNALPORT=8000# export EXTERNALPORT# WEBPROTOCOL=http# export WEBPROTOCOL# echo $WEBPROTOCOL# echo $EXTERNALPORT# cd /wherever/you/put/the/docker-compose-file/# docker-compose up -d
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.