Merge pull request #139 from CosmWasm/alpine-docker
Use alpine to build wasmd docker image
This commit is contained in:
@@ -202,9 +202,9 @@ jobs:
|
||||
name: Push application Docker image to docker hub
|
||||
command: |
|
||||
if [ "${CIRCLE_BRANCH}" = "master" ]; then
|
||||
docker tag "cosmwasm/wasmd-demo:${CIRCLE_SHA1}" cosmwasm/wasmd-demo:latest
|
||||
docker tag "cosmwasm/wasmd:${CIRCLE_SHA1}" cosmwasm/wasmd:latest
|
||||
docker login --password-stdin -u "$DOCKER_USER" \<<<"$DOCKER_PASS"
|
||||
docker push cosmwasm/wasmd-demo:latest
|
||||
docker push cosmwasm/wasmd:latest
|
||||
docker logout
|
||||
fi
|
||||
|
||||
@@ -274,9 +274,14 @@ workflows:
|
||||
version: 2
|
||||
test-suite:
|
||||
jobs:
|
||||
# this is now a slow process... let's only run on master
|
||||
- docker-image:
|
||||
requires:
|
||||
- setup-dependencies
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- docker-tagged:
|
||||
filters:
|
||||
tags:
|
||||
|
||||
50
Dockerfile.alpine
Normal file
50
Dockerfile.alpine
Normal file
@@ -0,0 +1,50 @@
|
||||
# docker build . -t wasm-alpine -f ./Dockerfile.alpine
|
||||
# docker run --rm -it wasm-alpine /bin/sh
|
||||
FROM cosmwasm/go-ext-builder:0.8.2-alpine AS builder
|
||||
|
||||
RUN apk add git
|
||||
# without this, build with LEDGER_ENABLED=false
|
||||
RUN apk add libusb-dev linux-headers
|
||||
|
||||
# copy all code into /code
|
||||
WORKDIR /code
|
||||
COPY . /code
|
||||
|
||||
# download all deps
|
||||
RUN go mod download
|
||||
# TODO: how to use this instead of hardcoding GO_COSMWASM
|
||||
RUN basename $(ls -d /go/pkg/mod/github.com/\!cosm\!wasm/go-cosmwasm@v*)
|
||||
|
||||
ENV GO_COSMWASM="v0.8.2-0.20200615221537-0fc920db0349"
|
||||
|
||||
# build go-cosmwasm *.a and install it
|
||||
WORKDIR /go/pkg/mod/github.com/\!cosm\!wasm/go-cosmwasm@${GO_COSMWASM}
|
||||
RUN cargo build --release --features backtraces --example muslc
|
||||
RUN mv /go/pkg/mod/github.com/\!cosm\!wasm/go-cosmwasm@${GO_COSMWASM}/target/release/examples/libmuslc.a /lib/libgo_cosmwasm_muslc.a
|
||||
# I got errors from go mod verify (called from make build) if I didn't clean this up
|
||||
RUN rm -rf /go/pkg/mod/github.com/\!cosm\!wasm/go-cosmwasm@${GO_COSMWASM}/target
|
||||
|
||||
# build the go wasm binary
|
||||
WORKDIR /code
|
||||
|
||||
# force it to use static lib (from above) not standard libgo_cosmwasm.so file
|
||||
RUN BUILD_TAGS=muslc make build
|
||||
|
||||
FROM alpine:3.12
|
||||
|
||||
COPY --from=builder /code/build/wasmd /usr/bin/wasmd
|
||||
COPY --from=builder /code/build/wasmcli /usr/bin/wasmcli
|
||||
|
||||
COPY docker/* /opt/
|
||||
RUN chmod +x /opt/*.sh
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
# rest server
|
||||
EXPOSE 1317
|
||||
# tendermint p2p
|
||||
EXPOSE 26656
|
||||
# tendermint rpc
|
||||
EXPOSE 26657
|
||||
|
||||
CMD ["/usr/bin/wasmd version"]
|
||||
1
Makefile
1
Makefile
@@ -90,7 +90,6 @@ install: go.sum
|
||||
go install -mod=readonly $(BUILD_FLAGS) ./cmd/wasmd
|
||||
go install -mod=readonly $(BUILD_FLAGS) ./cmd/wasmcli
|
||||
|
||||
|
||||
########################################
|
||||
### Documentation
|
||||
|
||||
|
||||
14
README.md
14
README.md
@@ -65,17 +65,17 @@ docker volume rm -f wasmd_data
|
||||
docker run --rm -it \
|
||||
-e PASSWORD=xxxxxxxxx \
|
||||
--mount type=volume,source=wasmd_data,target=/root \
|
||||
cosmwasm/wasmd-demo:latest ./setup.sh cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6
|
||||
cosmwasm/wasmd:latest ./setup.sh cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6
|
||||
|
||||
# This will start both wasmd and wasmcli rest-server, only wasmcli output is shown on the screen
|
||||
docker run --rm -it -p 26657:26657 -p 26656:26656 -p 1317:1317 \
|
||||
--mount type=volume,source=wasmd_data,target=/root \
|
||||
cosmwasm/wasmd-demo:latest ./run_all.sh
|
||||
cosmwasm/wasmd:latest ./run_all.sh
|
||||
|
||||
# view wasmd logs in another shell
|
||||
docker run --rm -it \
|
||||
--mount type=volume,source=wasmd_data,target=/root,readonly \
|
||||
cosmwasm/wasmd-demo:latest ./logs.sh
|
||||
cosmwasm/wasmd:latest ./logs.sh
|
||||
```
|
||||
|
||||
### CI
|
||||
@@ -88,7 +88,7 @@ rm -rf ./template && mkdir ./template
|
||||
docker run --rm -it \
|
||||
-e PASSWORD=xxxxxxxxx \
|
||||
--mount type=bind,source=$(pwd)/template,target=/root \
|
||||
cosmwasm/wasmd-demo:latest ./setup.sh cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6
|
||||
cosmwasm/wasmd:latest ./setup.sh cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6
|
||||
|
||||
sudo chown -R $(id -u):$(id -g) ./template
|
||||
|
||||
@@ -99,17 +99,17 @@ docker volume rm -f wasmd_data
|
||||
docker run --rm -it -p 26657:26657 -p 26656:26656 -p 1317:1317 \
|
||||
--mount type=bind,source=$(pwd)/template,target=/template \
|
||||
--mount type=volume,source=wasmd_data,target=/root \
|
||||
cosmwasm/wasmd-demo:latest ./run_all.sh /template
|
||||
cosmwasm/wasmd:latest ./run_all.sh /template
|
||||
|
||||
# RESTART CHAIN with existing state
|
||||
docker run --rm -it -p 26657:26657 -p 26656:26656 -p 1317:1317 \
|
||||
--mount type=volume,source=wasmd_data,target=/root \
|
||||
cosmwasm/wasmd-demo:latest ./run_all.sh
|
||||
cosmwasm/wasmd:latest ./run_all.sh
|
||||
|
||||
# view wasmd logs in another shell
|
||||
docker run --rm -it \
|
||||
--mount type=volume,source=wasmd_data,target=/root,readonly \
|
||||
cosmwasm/wasmd-demo:latest ./logs.sh
|
||||
cosmwasm/wasmd:latest ./logs.sh
|
||||
```
|
||||
|
||||
## Contributors
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
tail -f /root/log/wasmd.log
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
#!/bin/sh
|
||||
#set -euo pipefail
|
||||
|
||||
mkdir -p /root/log
|
||||
touch /root/log/wasmd.log
|
||||
./run_wasmd.sh >> /root/log/wasmd.log &
|
||||
./run_wasmd.sh $1 >> /root/log/wasmd.log &
|
||||
|
||||
sleep 4
|
||||
echo Starting Rest Server...
|
||||
|
||||
./run_wasmcli.sh
|
||||
./run_rest_server.sh
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
#!/bin/sh
|
||||
#set -euo pipefail
|
||||
|
||||
wasmcli rest-server --laddr tcp://0.0.0.0:1317 --trust-node --cors
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
|
||||
if test -n "$1"; then
|
||||
# need -R not -r to copy hidden files
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -o errexit -o nounset -o pipefail
|
||||
#!/bin/sh
|
||||
#set -o errexit -o nounset -o pipefail
|
||||
|
||||
PASSWORD=${PASSWORD:-1234567890}
|
||||
STAKE=${STAKE_TOKEN:-ustake}
|
||||
|
||||
3
go.mod
3
go.mod
@@ -3,7 +3,8 @@ module github.com/CosmWasm/wasmd
|
||||
go 1.13
|
||||
|
||||
require (
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200608192602-082a8c18f964
|
||||
// Note: update ENV GO_COSMWASM in Dockerfile.alpine when updating this
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200615221537-0fc920db0349
|
||||
github.com/btcsuite/btcd v0.0.0-20190807005414-4063feeff79a // indirect
|
||||
github.com/cosmos/cosmos-sdk v0.38.3
|
||||
github.com/golang/mock v1.4.3 // indirect
|
||||
|
||||
8
go.sum
8
go.sum
@@ -9,10 +9,10 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/ChainSafe/go-schnorrkel v0.0.0-20200102211924-4bcbc698314f h1:4O1om+UVU+Hfcihr1timk8YNXHxzZWgCo7ofnrZRApw=
|
||||
github.com/ChainSafe/go-schnorrkel v0.0.0-20200102211924-4bcbc698314f/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.1-0.20200604114456-1b2359bb7eb9 h1:UJOWFHfh2SG47GJcQsjbcEnfw7JM4HPM2cFO1fjjqEs=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.1-0.20200604114456-1b2359bb7eb9/go.mod h1:gAFCwllx97ejI+m9SqJQrmd2SBW7HA0fOjvWWJjM2uc=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200608192602-082a8c18f964 h1:qPuQfJFDXLcm8jhoWZs6x8jKr3c3yAlv40e93DUBHRY=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200608192602-082a8c18f964/go.mod h1:gAFCwllx97ejI+m9SqJQrmd2SBW7HA0fOjvWWJjM2uc=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200615215318-6f82d95b1cb6 h1:o/CwMvx7YP+Mnu4MvEypThjpmimGcd0ahJYUqKLI4q8=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200615215318-6f82d95b1cb6/go.mod h1:gAFCwllx97ejI+m9SqJQrmd2SBW7HA0fOjvWWJjM2uc=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200615221537-0fc920db0349 h1:SsPn/AHKtsZqKlGfXXArT/OUur9wJY79YNjFCIv1JZw=
|
||||
github.com/CosmWasm/go-cosmwasm v0.8.2-0.20200615221537-0fc920db0349/go.mod h1:gAFCwllx97ejI+m9SqJQrmd2SBW7HA0fOjvWWJjM2uc=
|
||||
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
|
||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
|
||||
|
||||
@@ -229,7 +229,7 @@ func (k Keeper) Migrate(ctx sdk.Context, contractAddress sdk.AccAddress, caller
|
||||
prefixStoreKey := types.GetContractStorePrefixKey(contractAddress)
|
||||
prefixStore := prefix.NewStore(ctx.KVStore(k.storeKey), prefixStoreKey)
|
||||
gas := gasForContract(ctx)
|
||||
res, gasUsed, err := k.wasmer.Migrate(newCodeInfo.CodeHash, params, msg, prefixStore, cosmwasmAPI, querier, ctx.GasMeter(), gas)
|
||||
res, gasUsed, err := k.wasmer.Migrate(newCodeInfo.CodeHash, params, msg, &prefixStore, cosmwasmAPI, &querier, ctx.GasMeter(), gas)
|
||||
consumeGas(ctx, gasUsed)
|
||||
if err != nil {
|
||||
return nil, sdkerrors.Wrap(types.ErrMigrationFailed, err.Error())
|
||||
|
||||
Reference in New Issue
Block a user