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