Skip to content

Commit

Permalink
Fix compilation of smart contracts in Docker containers
Browse files Browse the repository at this point in the history
The build was broken due to more recent `solc` requiring libc compat
files in Alpine and Hardhat ignoring errors from the execution of
`solc`. This led to deadlocked compilation attempts.

Hardhat fix: NomicFoundation/hardhat#3284

This changes adds the required compat files in our Alpine image as well.
  • Loading branch information
tolbrino committed Nov 2, 2022
1 parent e863b32 commit 583f41c
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 53 deletions.
6 changes: 6 additions & 0 deletions Dockerfile.hardhat
Expand Up @@ -62,6 +62,12 @@ RUN make -j build \
# use alpine version of node for smallest image sizes
FROM node:16-alpine as runtime

# install tools required within our scripts
RUN apk add --no-cache libc6-compat

# symlink to ensure any files relying on the presence of the library keep working
RUN ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2

RUN mkdir /core

WORKDIR /hardhat
Expand Down
2 changes: 1 addition & 1 deletion packages/ethereum/package.hardhat.json
Expand Up @@ -30,7 +30,7 @@
"chai": "4.3.6",
"dotenv": "10.0.0",
"ethers": "5.7.0",
"hardhat": "2.11.2",
"hardhat": "2.12.2",
"hardhat-deploy": "^0.11.5",
"hardhat-gas-reporter": "1.0.8",
"solidity-coverage": "0.8.2",
Expand Down
2 changes: 1 addition & 1 deletion packages/ethereum/package.json
Expand Up @@ -54,7 +54,7 @@
"chai": "4.3.6",
"dotenv": "10.0.0",
"ethers": "5.7.0",
"hardhat": "2.11.2",
"hardhat": "2.12.2",
"hardhat-deploy": "^0.11.5",
"hardhat-gas-reporter": "1.0.8",
"solidity-coverage": "0.8.2",
Expand Down
102 changes: 51 additions & 51 deletions yarn.lock
Expand Up @@ -3114,7 +3114,7 @@ __metadata:
chai: 4.3.6
dotenv: 10.0.0
ethers: 5.7.0
hardhat: 2.11.2
hardhat: 2.12.2
hardhat-deploy: ^0.11.5
hardhat-gas-reporter: 1.0.8
solidity-coverage: 0.8.2
Expand Down Expand Up @@ -4291,90 +4291,90 @@ __metadata:
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.0"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.0"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.0"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.0"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.0"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.0"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.0"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.0"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.0"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.0.3"
"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.0"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard

"@nomicfoundation/solidity-analyzer@npm:^0.0.3":
version: 0.0.3
resolution: "@nomicfoundation/solidity-analyzer@npm:0.0.3"
dependencies:
"@nomicfoundation/solidity-analyzer-darwin-arm64": 0.0.3
"@nomicfoundation/solidity-analyzer-darwin-x64": 0.0.3
"@nomicfoundation/solidity-analyzer-freebsd-x64": 0.0.3
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.0.3
"@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.0.3
"@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.0.3
"@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.0.3
"@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.0.3
"@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.0.3
"@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.0.3
"@nomicfoundation/solidity-analyzer@npm:^0.1.0":
version: 0.1.0
resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.0"
dependencies:
"@nomicfoundation/solidity-analyzer-darwin-arm64": 0.1.0
"@nomicfoundation/solidity-analyzer-darwin-x64": 0.1.0
"@nomicfoundation/solidity-analyzer-freebsd-x64": 0.1.0
"@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.1.0
"@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.1.0
"@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.1.0
"@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.1.0
"@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.1.0
"@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.1.0
"@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.1.0
dependenciesMeta:
"@nomicfoundation/solidity-analyzer-darwin-arm64":
optional: true
Expand All @@ -4396,7 +4396,7 @@ __metadata:
optional: true
"@nomicfoundation/solidity-analyzer-win32-x64-msvc":
optional: true
checksum: dd3e1e6aa75716eb22f256be06d6a4d808ef732f77c26b4489ae8f9508271799d555dff547cf037373b0974d892b4cc7f78bc4ea5027eee8561e4dd394fe61ac
checksum: 42dc5ba40e76bf14945fb6a423554bbbc6c99596675065d7d6f3c9a49ec39e37f3f77ecfedcf906fdb1bb33b033a5d92a90c645c886d6ff23334c8af8b14ff67
languageName: node
linkType: hard

Expand Down Expand Up @@ -12479,9 +12479,9 @@ __metadata:
languageName: node
linkType: hard

"hardhat@npm:2.11.2":
version: 2.11.2
resolution: "hardhat@npm:2.11.2"
"hardhat@npm:2.12.2":
version: 2.12.2
resolution: "hardhat@npm:2.12.2"
dependencies:
"@ethersproject/abi": ^5.1.2
"@metamask/eth-sig-util": ^4.0.0
Expand All @@ -12495,7 +12495,7 @@ __metadata:
"@nomicfoundation/ethereumjs-tx": ^4.0.0
"@nomicfoundation/ethereumjs-util": ^8.0.0
"@nomicfoundation/ethereumjs-vm": ^6.0.0
"@nomicfoundation/solidity-analyzer": ^0.0.3
"@nomicfoundation/solidity-analyzer": ^0.1.0
"@sentry/node": ^5.18.1
"@types/bn.js": ^5.1.0
"@types/lru-cache": ^5.1.0
Expand Down Expand Up @@ -12543,7 +12543,7 @@ __metadata:
optional: true
bin:
hardhat: internal/cli/cli.js
checksum: 6fc289931c970a16fe09f7aa2b14f8b4f4a63304895be7e89112d4065cfdb15887d90cdd827d10f413fb5cc1ca09fb0b512b7ffc79dc6bc121368bda70dffb4a
checksum: cd45bf9d4f15d967bd2d8154cc5bc60e7d0d4bab80caea909d36e3660437fc9f6b4faf41736ed3b75b11ff15ac9a9b68828eebb1026ed9fa8d9eb87242f061d2
languageName: node
linkType: hard

Expand Down

0 comments on commit 583f41c

Please sign in to comment.