diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8fd4077f0739ad7dae618d7c7cfc5bc933c7e2c6 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,53 @@ +FROM rust:1-bullseye as build_dex + +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y clang cmake protobuf-compiler + +WORKDIR / +RUN git clone https://git.duniter.org/nodes/typescript/duniter.git \ + --branch duniter-v2s-issue-123-industrialize-releases \ + duniter + +WORKDIR /duniter/rust-bins/duniter-dbex + +RUN cargo build --release + +FROM python:3.9.18-bullseye as build_g1_output + +WORKDIR /app +COPY --from=build_dex /duniter/target/release/dex ./ + +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y sqlite3 + +WORKDIR /dump +RUN curl https://dl.cgeek.fr/public/backup-g1-duniter-1.8.6.tgz -o g1-dump.tgz \ + && tar xvzf g1-dump.tgz \ + && rm g1-dump.tgz \ + && mv backup-g1-duniter-1.8.6 duniter_default + +WORKDIR /py-g1-migrator +COPY . . +RUN rm -rf inputs/* +RUN rm -rf output/* + +ARG dex=/app/dex +ARG dest_folder=/py-g1-migrator +ARG path=/dump + +RUN mkdir -p "$dest_folder/inputs" +RUN echo "Export wallets data in progress..." +RUN yes | $dex -h "$path" find wallet -p balance -o json -f "$dest_folder/inputs/wallets.json" >/dev/null +RUN echo "Export certs data in progress..." +RUN yes | $dex -h "$path" find cindex -p issued -o json -f "$dest_folder/inputs/certs.json" >/dev/null +RUN echo "Export identities data in progress..." +RUN yes | $dex -h "$path" find iindex -p uid member writtenOn -o json -f "$dest_folder/inputs/idty.json" >/dev/null +RUN echo "Export blocs dates data in progress..." +RUN yes | $dex -h "$path" find main_blocks -p medianTime -o json -f "$dest_folder/inputs/blocs.json" >/dev/null +RUN echo "Export UD value in progress..." +RUN yes | $dex -h "$path" find bindex -r -l 1 -p dividend -o json -f "$dest_folder/inputs/ud_value.json" >/dev/null +RUN echo "Export transaction history in progress..." +RUN sqlite3 "$path/duniter_default/txs.db" --json "select time,comment,issuers,outputs from txs;" >"$dest_folder/inputs/transactions_history.json" && echo Done + +RUN pip install -r requirements.txt +RUN ./main.py