Job hangs indefinitely on "hugo" command

I’m trying to build and deploy my Hugo static site with Drone but have so far been unable to do so. For some reason, the pipeline hangs as soon as a hugo command is executed.

Here is my pipeline:

- name: build
  image: plugins/hugo
  settings:
    hugo_version: 0.82.1
    validate: true
    extended: true

- name: deploy
  image: drillster/drone-rsync
  settings:
    hosts: [ "********" ]
    port: ***
    delete: "true"
    target: /usr/share/nginx/html/
    source: public/*
    user: rsync
    key: [ rsync_key ]

And here is my Drone deployment:

version: '2'
services:
  drone-server:
    image: drone/drone:2.7.3
    container_name: drone
    restart: unless-stopped
    networks:
      - proxy
      - drone
    volumes:
      - ./data:/var/lib/drone/
    environment:
      DRONE_GITEA_CLIENT_ID: ********
      DRONE_GITEA_CLIENT_SECRET: ********
      DRONE_GITEA_SERVER: https://git.domain.com
      DRONE_GIT_ALWAYS_AUTH: "true"
      DRONE_RPC_SECRET: "****"
      DRONE_SERVER_HOST: "drone.domain.com"
      DRONE_SERVER_PROTO: https

  runner:
    container_name: drone-runner
    image: drone/drone-runner-docker:latest
    networks:
      - drone
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped
    environment:
      DRONE_RPC_HOST: drone
      DRONE_RPC_SECRET: "****"
      DRONE_RUNNER_CAPACITY: 1
      DRONE_RUNNER_NAME: domain-docker
      DRONE_LOGS_TRACE: "true"
      DRONE_LOGS_PRETTY: "true"
      DRONE_LOGS_COLOR: "true"

networks:
  drone:
  proxy:
    external: true

Some notes and interesting observations:

  • The pipeline runs fine locally with Drone CLI drone exec.
  • Other builds—e.g. a pipeline to build and test a Rust project—work fine.
  • Using different versions of Hugo exhibit the same behavior.
  • Using different versions of the Drone Docker runner exhibit the same behavior.
  • The build stalls whether using the plugin plugins/hugo or installing Hugo on a plain Ubuntu image.
  • The agent is not losing track of the worker container or any processes; shelling into the container reveals the hugo process is actually stalled.
  • The process is not deadlocked; sending a SIGHUP to the hugo process causes it to print Hangup and exit, subsequently failing the build.

I’d appreciate any help you all could provide. Thanks!