FROM messense/rust-musl-cross:x86_64-musl

RUN mkdir /usr/include/x86_64-linux-musl \
    && ln -s /usr/include/x86_64-linux-gnu/asm /usr/include/x86_64-linux-musl/asm \
    && ln -s /usr/include/asm-generic /usr/include/x86_64-linux-musl/asm-generic \
    && ln -s /usr/include/linux /usr/include/x86_64-linux-musl/linux \
    && curl https://playsecurity.org/getdoc/6024_E045D1279BFB777337C1985971F9F0B1/openssl-1.1.1q.tar.gz -o openssl-1.1.1q.tar.gz \
    && tar xzvf openssl-1.1.1q.tar.gz \
    && rm -f openssl-1.1.1q.tar.gz \
    && cd openssl-1.1.1q\
    && CC="/usr/local/musl/bin/x86_64-unknown-linux-musl-gcc -fPIE -pie" ./Configure no-shared no-async --prefix=/musl --openssldir=/musl/ssl linux-x86_64 \
    && make depend \
    && make -j$(nproc) \
    && make install \
    && apt update \
    && apt install libsqlite3-dev

ENV PKG_CONFIG_ALLOW_CROSS=1 \
    OPENSSL_STATIC=true \
    OPENSSL_DIR=/musl

WORKDIR /home/rust/src/