FROM rust AS build ARG SYNC_STORAGE_VERSION=0.18.2 RUN git clone https://github.com/mozilla-services/syncstorage-rs -b ${SYNC_STORAGE_VERSION} /app WORKDIR /app COPY ./public-url.patch . RUN \ apt-get update \ && apt-get install -y libpython3-dev \ && git apply public-url.patch \ && cargo install --path ./syncserver --features mysql --locked \ && cargo install diesel_cli --no-default-features --features mysql --locked \ && cargo clean \ && apt-get remove -y libpython3-dev \ && rm -rf /var/lib/apt/lists \ && bash -O extglob -c 'rm -rf /usr/local/cargo/!(bin)' \ && bash -O extglob -c 'rm -rf /usr/local/cargo/bin/!(diesel|syncserver)' FROM python:3.11 AS sync COPY --from=build /usr/local/cargo/bin/syncserver /usr/local/bin COPY --from=build /app/requirements.txt . RUN pip install -r requirements.txt CMD [ "/usr/local/bin/syncserver" ] FROM mariadb AS db RUN mkdir -p /app/tokenserver-db COPY --from=build /app/tokenserver-db/migrations /app/tokenserver-db/migrations COPY --from=build /usr/local/cargo/bin/diesel /usr/local/bin