Deploying Caddy to render

I need a reverse proxy to forward webhooks from a partner test env to several of our dev/staging environments. I could use a 3rd party service, but I’d rather use render.

I’ve been trying to deploy a simple Caddy to render but I get the following error on start

standard_init_linux.go:228: exec user process caused: operation not permitted

the render.yaml service:

  - name: caddy
    type: web
    region: frankfurt
    plan: Starter
    env: docker
    dockerfilePath: ./infra/caddy/Dockerfile
    dockerContext: .
    autoDeploy: true

the Caddyfile:

{
  debug
  admin off
  http_port {$PORT}
}

http://localhost {
  reverse_proxy https://render.com { # example
    header_up Host {upstream_hostport}
  }
  log
}

The Dockerfile:

FROM caddy:2.6.4

COPY Caddyfile /etc/caddy/Caddyfile

The image builds and runs fine locally (at least with podman EDIT: also docker build)

podman build --tag caddy -f ./Dockerfile
podman run --env 'PORT=8383' -p 8383:8383 --name caddy --rm caddy 
curl -v http://localhost:8383/

Any suggestion?

Hi Sonny,

From reading some threads online, it sounds like this type of error can sometimes occur due to incompatibilities between the system that you build the image on vs. the system that you’re running the image on. We will run the image on amd64 servers, so you can try building the image with the platform flag to specify this buildx build --platform linux/amd64.

Let me know if this helps.

Best,

Hello Jade,

I had forgotten the Dockerfile in my original post - I added it just now.

I’m not sure how buildx locally would help, my understanding is that the image is built on render infrastructure. Furthermore, I use amd64 architecture as well anyway.

If it helps, here is the service in question https://dashboard.render.com/web/srv-cgc6lao2qv267ubkc230.

For reference, I gave up trying to run Caddy on render.com and I’m using nginx instead.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.