@@ -77,6 +77,67 @@ WORKDIR /srv/docsrs
7777# Tini is a small init binary to properly handle signals
7878CMD ["/usr/bin/tini" , "/usr/local/bin/cratesfyi" , "start-web-server" , "0.0.0.0:80" ]
7979
80+ # #######################
81+ # Build server stage #
82+ # #######################
83+
84+ FROM ubuntu:22.04 AS build-server
85+
86+ RUN apt-get update \
87+ && DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
88+ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
89+ ca-certificates \
90+ tini \
91+ docker.io \
92+ build-essential \
93+ gcc \
94+ pkg-config \
95+ libssl-dev \
96+ && rm -rf /var/lib/apt/lists/*
97+
98+ COPY --from=build /build/target/release/cratesfyi /usr/local/bin
99+
100+ WORKDIR /srv/docsrs
101+ # Tini is a small init binary to properly handle signals
102+ CMD ["/usr/bin/tini" , "/usr/local/bin/cratesfyi" , "start-build-server" ]
103+
104+ # ###########################
105+ # Registry watcher stage #
106+ # ###########################
107+
108+ FROM ubuntu:22.04 AS registry-watcher
109+
110+ RUN apt-get update \
111+ && DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
112+ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
113+ ca-certificates \
114+ tini \
115+ git \
116+ && rm -rf /var/lib/apt/lists/*
117+
118+ COPY --from=build /build/target/release/cratesfyi /usr/local/bin
119+
120+ WORKDIR /srv/docsrs
121+ # Tini is a small init binary to properly handle signals
122+ CMD ["/usr/bin/tini" , "/usr/local/bin/cratesfyi" , "--" , "start-registry-watcher" , "--repository-stats-updater=enabled" , "--cdn-invalidator=enabled" ]
123+
124+ # ##############
125+ # CLI stage #
126+ # ##############
127+
128+ FROM ubuntu:22.04 AS cli
129+
130+ RUN apt-get update \
131+ && DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
132+ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
133+ ca-certificates \
134+ tini \
135+ && rm -rf /var/lib/apt/lists/*
136+
137+ COPY --from=build /build/target/release/cratesfyi /usr/local/bin
138+
139+ ENTRYPOINT ["/usr/local/bin/cratesfyi" ]
140+
80141# #################
81142# Output stage #
82143# #################
0 commit comments