lightweight docker container and docker volumes
Reviewed-on: SGX/hacker-challenge-sgx#3 Co-authored-by: Jakub Doka <jakub.doka2@gmail.com> Co-committed-by: Jakub Doka <jakub.doka2@gmail.com>
This commit is contained in:
parent
09a84a15f3
commit
c2e751d893
@ -30,6 +30,12 @@ curl localhost:your-port
|
|||||||
|
|
||||||
The node homepage source is also [here](./src/HOMEPAGE.md).
|
The node homepage source is also [here](./src/HOMEPAGE.md).
|
||||||
|
|
||||||
|
## Production build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./scripts/build-container.sh
|
||||||
|
```
|
||||||
|
|
||||||
## Contributing to the challenge
|
## Contributing to the challenge
|
||||||
|
|
||||||
Don't forget to run `cargo clippy` and `cargo fmt` before submitting a PR.
|
Don't forget to run `cargo clippy` and `cargo fmt` before submitting a PR.
|
||||||
|
@ -1,6 +1,22 @@
|
|||||||
FROM occlum/occlum:latest-ubuntu20.04
|
FROM occlum/occlum:latest-ubuntu20.04 AS build
|
||||||
|
|
||||||
|
WORKDIR /
|
||||||
|
RUN mkdir sgx_libs &&\
|
||||||
|
cp /usr/lib/x86_64-linux-gnu/libsgx_* sgx_libs/ &&\
|
||||||
|
cp /usr/lib/x86_64-linux-gnu/libdcap_quoteprov.so.1 sgx_libs/libdcap_quoteprov.so
|
||||||
|
|
||||||
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
|
RUN apt update -y && apt install -y jq curl
|
||||||
|
|
||||||
COPY challenge.sh /challenge.sh
|
COPY challenge.sh /challenge.sh
|
||||||
COPY challenge.tar.gz /challenge.tar.gz
|
COPY challenge.tar.gz /challenge.tar.gz
|
||||||
COPY challenge.qcnl.conf /etc/sgx_default_qcnl.conf
|
COPY challenge.qcnl.conf /etc/sgx_default_qcnl.conf
|
||||||
|
|
||||||
|
COPY --from=build /opt/occlum/build/bin/occlum-run /opt/occlum/build/bin/occlum-run
|
||||||
|
COPY --from=build /opt/occlum/build/bin/occlum /usr/bin/occlum
|
||||||
|
COPY --from=build /sgx_libs /sgx_libs
|
||||||
|
RUN cp /sgx_libs/* /usr/lib/x86_64-linux-gnu/
|
||||||
|
|
||||||
WORKDIR /
|
WORKDIR /
|
||||||
ENTRYPOINT ["/challenge.sh"]
|
ENTRYPOINT ["/challenge.sh"]
|
||||||
|
20
scripts/build-container.sh
Executable file
20
scripts/build-container.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo "Building the hacker-challenge docker image"
|
||||||
|
|
||||||
|
if ! command -v docker 2>&1 >/dev/null
|
||||||
|
then
|
||||||
|
echo "docker not found, please install docker"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e challenge_instance/challenge.tar.gz ]; then
|
||||||
|
echo "Please build the challenge first, see README.md"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd docker
|
||||||
|
cp ../challenge_instance/challenge.tar.gz challenge.tar.gz
|
||||||
|
docker build -f challenge.Dockerfile -t hacker-challenge:latest .
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo "Container named 'hacker-challenge' built"
|
@ -12,10 +12,11 @@ if [ "$prerequisites" == "--prep" ]; then
|
|||||||
rustup install stable-x86_64-unknown-linux-gnu
|
rustup install stable-x86_64-unknown-linux-gnu
|
||||||
rustup default stable
|
rustup default stable
|
||||||
rustup target add x86_64-unknown-linux-musl
|
rustup target add x86_64-unknown-linux-musl
|
||||||
|
echo "net.git-fetch-with-cli = true" >> /root/.cargo/config.toml
|
||||||
|
|
||||||
mkdir -p /root/.ssh
|
mkdir -p /root/.ssh
|
||||||
|
|
||||||
echo
|
echo
|
||||||
#echo "docker cp ~/.ssh/config packager:/root/.ssh/config"
|
|
||||||
echo "docker cp deploy_ed25519 packager:/root/.ssh/id_ed25519"
|
echo "docker cp deploy_ed25519 packager:/root/.ssh/id_ed25519"
|
||||||
echo
|
echo
|
||||||
echo "Run above commands in another terminal"
|
echo "Run above commands in another terminal"
|
||||||
|
@ -31,27 +31,7 @@ function build_mint_sol_tool() {
|
|||||||
cd ..
|
cd ..
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_challenge_image() {
|
source "${script_dir}/build-container.sh"
|
||||||
echo "Building the hacker-challenge docker image"
|
|
||||||
|
|
||||||
if ! command -v docker 2>&1 >/dev/null
|
|
||||||
then
|
|
||||||
echo "docker not found, please install docker"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -e challenge_instance/challenge.tar.gz ]; then
|
|
||||||
echo "Please build the challenge first, see README.md"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd docker
|
|
||||||
cp ../challenge_instance/challenge.tar.gz challenge.tar.gz
|
|
||||||
docker build -f challenge.Dockerfile -t hacker-challenge:latest .
|
|
||||||
cd ..
|
|
||||||
}
|
|
||||||
|
|
||||||
build_challenge_image
|
|
||||||
build_mint_sol_tool
|
build_mint_sol_tool
|
||||||
|
|
||||||
# Cleanup old containers and run the network root
|
# Cleanup old containers and run the network root
|
||||||
@ -80,6 +60,7 @@ for p in {31311..31320}; do
|
|||||||
docker run --device /dev/sgx/enclave \
|
docker run --device /dev/sgx/enclave \
|
||||||
--device /dev/sgx/provision \
|
--device /dev/sgx/provision \
|
||||||
--env INIT_NODES="172.17.0.2 172.17.0.3 172.17.0.4" \
|
--env INIT_NODES="172.17.0.2 172.17.0.3 172.17.0.4" \
|
||||||
|
-v "/tmp/hacker-challenge${p}:/challenge/main" \
|
||||||
--name "hacker-challenge${p}" -p "${p}:31372" \
|
--name "hacker-challenge${p}" -p "${p}:31372" \
|
||||||
-d hacker-challenge:latest
|
-d hacker-challenge:latest
|
||||||
done
|
done
|
||||||
|
@ -20,7 +20,7 @@ use tokio::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
const INIT_NODES: &str = "/host/detee_challenge_nodes";
|
const INIT_NODES: &str = "/host/detee_challenge_nodes";
|
||||||
const DISK_PERSISTENCE: &str = "TRY_TO_HACK_THIS";
|
const DISK_PERSISTENCE: &str = "/host/main/TRY_TO_HACK_THIS";
|
||||||
const MAINTAINED_CONNECTIONS: usize = 3;
|
const MAINTAINED_CONNECTIONS: usize = 3;
|
||||||
|
|
||||||
pub async fn localhost_cron(ds: Arc<Store>, tx: Sender<NodeUpdate>) {
|
pub async fn localhost_cron(ds: Arc<Store>, tx: Sender<NodeUpdate>) {
|
||||||
|
Loading…
Reference in New Issue
Block a user