Docker files chore (#3880)

* Renamed staking-miner Dockerfiles

* change readme stacking-miner

* mv docker/ to scripts/docker/polkadot

* renamed dockerfiles in scripts/docker

* renamed Dockerfiles

* Update scripts/docker/staking-miner/staking_miner_injected.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* renamed release.Dockerfile

* renamed staking-miner dockerfiles

* add label polkadot_builder.Dockerfile

* Update scripts/docker/polkadot/polkadot_builder.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/polkadot/polkadot_builder.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/polkadot/polkadot_builder.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/polkadot/polkadot_builder.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/polkadot_injected_release.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/collator_injected.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/staking-miner/staking-miner_injected.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/staking-miner/staking-miner_builder.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/staking-miner/staking-miner_builder.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Update scripts/docker/staking-miner/staking-miner_injected.Dockerfile

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* move gpg server as variable to GHA config

* simplified polkadot_builder.Dockerfile

* gitlab-ci modify cp command in test-build-linux-stable

* fix tests

* renamed scripts/docker to scripts/dockerfiles

* fix spellcheck

* fix spellcheck

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
This commit is contained in:
Alexander Samusev
2021-09-28 17:47:52 +02:00
committed by GitHub
parent ab7f87a81a
commit f29b6db6e4
15 changed files with 45 additions and 38 deletions
@@ -0,0 +1,7 @@
# Self built Docker image
The Polkadot repo contains several options to build Docker images for Polkadot.
This folder contains a self-contained image that does not require a Linux pre-built binary.
Instead, building the image is possible on any host having docker installed and will
build Polkadot inside Docker. That also means that no Rust toolchain is required on the host
machine for the build to succeed.
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -e
pushd .
# The following line ensure we run from the project root
PROJECT_ROOT=`git rev-parse --show-toplevel`
cd $PROJECT_ROOT
# Find the current version from Cargo.toml
VERSION=`grep "^version" ./Cargo.toml | egrep -o "([0-9\.]+)"`
GITUSER=parity
GITREPO=polkadot
# Build the image
echo "Building ${GITUSER}/${GITREPO}:latest docker image, hang on!"
time docker build -f ./scripts/docker/polkadot/polkadot_builder.Dockerfile --build-arg RUSTC_WRAPPER= --build-arg PROFILE=release -t ${GITUSER}/${GITREPO}:latest .
# Show the list of available images for this repo
echo "Image is ready"
docker images | grep ${GITREPO}
echo -e "\nIf you just built version ${VERSION}, you may want to update your tag:"
echo " $ docker tag ${GITUSER}/${GITREPO}:$VERSION ${GITUSER}/${GITREPO}:${VERSION}"
popd
@@ -0,0 +1,46 @@
version: '3'
services:
node_alice:
build:
context: .
dockerfile: polkadot_builder.Dockerfile
ports:
- "30333:30333"
- "9933:9933"
- "9944:9944"
image: chevdor/polkadot:latest
volumes:
- "polkadot-data-alice:/data"
command: polkadot --chain=polkadot-local --alice -d /data --node-key 0000000000000000000000000000000000000000000000000000000000000001
networks:
testing_net:
ipv4_address: 172.28.1.1
node_bob:
build:
context: .
dockerfile: polkadot_builder.Dockerfile
ports:
- "30344:30344"
- "9935:9935"
- "9945:9945"
image: chevdor/polkadot:latest
volumes:
- "polkadot-data-bob:/data"
links:
- "node_alice:alice"
command: polkadot --chain=polkadot-local --bob -d /data --port 30344 --rpc-port 9935 --ws-port 9945 --bootnodes '/ip4/172.28.1.1/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR'
networks:
testing_net:
ipv4_address: 172.28.1.2
volumes:
polkadot-data-alice:
polkadot-data-bob:
networks:
testing_net:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
@@ -0,0 +1,16 @@
version: '3'
services:
polkadot:
build:
context: .
dockerfile: polkadot_builder.Dockerfile
ports:
- "127.0.0.1:30333:30333/tcp"
- "127.0.0.1:9933:9933/tcp"
image: chevdor/polkadot:latest
volumes:
- "polkadot-data:/data"
command: polkadot
volumes:
polkadot-data:
@@ -0,0 +1,28 @@
FROM docker.io/paritytech/ci-linux:production as builder
LABEL io.parity.image.description="This is the build stage for Polkadot. Here we create the binary."
WORKDIR /polkadot
COPY . /polkadot
RUN cargo build --release --locked
# ===== SECOND STAGE ======
FROM docker.io/library/ubuntu:20.04
LABEL io.parity.image.description="Polkadot: a platform for web3. This is a self-buit multistage image."
COPY --from=builder /polkadot/target/release/polkadot /usr/local/bin
RUN useradd -m -u 1000 -U -s /bin/sh -d /polkadot polkadot && \
mkdir -p /polkadot/.local/share && \
mkdir /data && \
chown -R polkadot:polkadot /data && \
ln -s /data /polkadot/.local/share/polkadot && \
rm -rf /usr/bin /usr/sbin
USER polkadot
EXPOSE 30333 9933 9944 9615
VOLUME ["/data"]
ENTRYPOINT ["/usr/local/bin/polkadot"]