installer: Don't hardcode HTTP port in Docker image

I want to not build the docker image each time I build an installer;
that's what --skip-subtask was intended to allow.

However it didn't actually work because the trivial-httpd port gets
encoded in the image.  Fix that by injecting it at runtime via
environment variable.

This also sneaks in a fix to deduplicate the mknod calls because I'm
too lazy to separate it.