28 lines
1.1 KiB
Docker
28 lines
1.1 KiB
Docker
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
|