--- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +*.sh text eol=lf --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,41 @@ -FROM rust:latest +# ===== BUILD ====== -EXPOSE 9944 +FROM phusion/baseimage:0.10.2 as builder +LABEL maintainer="gz@usetech.com" -# Install build tools -RUN apt-get update && apt-get -y install -y cmake pkg-config libssl-dev git gcc build-essential clang libclang-dev curl -RUN curl https://getsubstrate.io -sSf | bash -s -- --fast -RUN rustup update nightly -RUN rustup target add wasm32-unknown-unknown --toolchain nightly -RUN rustup update +ENV WASM_TOOLCHAIN=nightly + +ARG PROFILE=release + +RUN apt-get update && \ + apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \ + apt-get install -y cmake pkg-config libssl-dev git clang # Get project and run it -RUN git clone https://github.com/usetech-llc/nft_parachain +RUN git clone https://github.com/usetech-llc/nft_parachain /nft_parachain WORKDIR /nft_parachain -RUN cargo build -RUN cargo test --all +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y && \ + export PATH="$PATH:$HOME/.cargo/bin" && \ + rustup toolchain install $WASM_TOOLCHAIN && \ + rustup target add wasm32-unknown-unknown --toolchain $WASM_TOOLCHAIN && \ + rustup default stable && \ + rustup target list --installed && \ + rustup show && \ + cargo build "--$PROFILE" + +RUN cd target/release && ls -la + +# ===== RUN ====== + +FROM phusion/baseimage:0.10.2 +ARG PROFILE=release + +COPY --from=builder /nft_parachain/target/$PROFILE/nft /usr/local/bin + +EXPOSE 9944 +VOLUME ["/chain-data"] + # Copy and run start script COPY ["./run.sh", "./run.sh"] RUN chmod +x ./run.sh --- a/doc/demo_milestone1-2.md +++ b/doc/demo_milestone1-2.md @@ -12,7 +12,7 @@ The node can be run using docker container: ``` -TBD +docker-compose up -d ``` #### NFT Tracking Module --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3" +version: "3.5" services: node: @@ -10,3 +10,10 @@ dockerfile: Dockerfile volumes: - ./chain-data:/chain-data + networks: + - substrate_network + +networks: + substrate_network: + driver: bridge + name: substrate_network --- a/run.sh +++ b/run.sh @@ -1 +1,3 @@ -cargo run -- --dev --ws-external --rpc-external --base-path=./chain-data \ No newline at end of file +ls -la /nft_parachain/target/release + +/usr/local/bin/nft --dev --ws-external --rpc-external --base-path=/chain-data