sparkfabrik / sparkdock

Automatic MacOS system provisioning
Other
20 stars 8 forks source link

Make dinghy-http-proxy ARM compatible #41

Closed paolomainardi closed 2 years ago

paolomainardi commented 3 years ago

Right now dinghy-http-proxy rely on this: https://github.com/nginx-proxy/nginx-proxy

Which is not currently ARM compatible: https://github.com/nginx-proxy/nginx-proxy/issues/1370

We cannot even try to run it under qemu (the default emulation running on docker for mac):

Running the proxy on Apple Slicon:

❯ docker logs -f 1de9a304477b
WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
is being generated in the background.  Once the new dhparam.pem is in place, nginx will be reloaded.
Generating DH parameters, 2048 bit long safe prime, generator 2
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1 fp=0xc8200207c8 sp=0xc8200207c0
runtime: failed to create new OS thread (have 2 already; errno=22)
fatal error: newosproc

runtime stack:
runtime.throw(0x884500, 0x9)
    /usr/local/go1.6/src/runtime/panic.go:530 +0x90
runtime.newosproc(0xc820026000, 0xc820035fc0)
    /usr/local/go1.6/src/runtime/os1_linux.go:149 +0x18c
runtime.newm(0x932358, 0x0)
    /usr/local/go1.6/src/runtime/proc.go:1513 +0x135
runtime.main.func1()
    /usr/local/go1.6/src/runtime/proc.go:125 +0x2c
runtime.systemstack(0xa8e800)
    /usr/local/go1.6/src/runtime/asm_amd64.s:291 +0x79
runtime.mstart()
    /usr/local/go1.6/src/runtime/proc.go:1048

goroutine 1 [running]:
runtime.systemstack_switch()
    /usr/local/go1.6/src/runtime/asm_amd64.s:245 fp=0xc820020770 sp=0xc820020768
runtime.main()
    /usr/local/go1.6/src/runtime/proc.go:126 +0x62 fp=0xc8200207c0 sp=0xc820020770
runtime.goexit()
    /usr/local/go1.6/src/runtime/asm_amd64.s:1998 +0x1
paolomainardi commented 2 years ago

Done: https://github.com/sparkfabrik/dinghy-http-proxy