Dockerfile raw

   1  FROM ubuntu:22.04
   2  
   3  # Avoid prompts from apt
   4  ENV DEBIAN_FRONTEND=noninteractive
   5  
   6  # Install dependencies
   7  RUN apt-get update && apt-get install -y \
   8      nodejs \
   9      npm \
  10      ca-certificates \
  11      && rm -rf /var/lib/apt/lists/*
  12  
  13  # Create orly user
  14  RUN useradd -m -s /bin/bash orly
  15  
  16  # Set working directory
  17  WORKDIR /home/orly
  18  
  19  # Copy pre-built binary (will be built on host)
  20  COPY --chown=orly:orly orly /home/orly/.local/bin/orly
  21  
  22  # Copy libsecp256k1.so for crypto operations
  23  COPY --chown=orly:orly libsecp256k1.so /home/orly/.local/lib/libsecp256k1.so
  24  
  25  # Copy policy files to the correct locations
  26  COPY --chown=orly:orly cs-policy.js /home/orly/cs-policy.js
  27  COPY --chown=orly:orly cs-policy-daemon.js /home/orly/cs-policy-daemon.js
  28  COPY --chown=orly:orly policy.json /home/orly/.config/orly/policy.json
  29  COPY --chown=orly:orly environment.txt /home/orly/env
  30  
  31  # Create necessary directories (lowercase for config path)
  32  RUN mkdir -p /home/orly/.config/orly && \
  33      mkdir -p /home/orly/.local/share/orly && \
  34      mkdir -p /home/orly/.local/bin && \
  35      mkdir -p /home/orly/.local/lib && \
  36      chown -R orly:orly /home/orly
  37  
  38  # Switch to orly user
  39  USER orly
  40  
  41  # Set up environment
  42  ENV PATH="/home/orly/.local/bin:${PATH}"
  43  ENV LD_LIBRARY_PATH="/home/orly/.local/lib:${LD_LIBRARY_PATH}"
  44  
  45  # Expose relay port
  46  EXPOSE 8777
  47  
  48  # Copy and set up the start script
  49  COPY --chown=orly:orly start.sh /home/orly/start.sh
  50  
  51  WORKDIR /home/orly
  52  
  53  CMD ["/bin/bash", "/home/orly/start.sh"]
  54