I have an issue deploying Ganache-cli and my smart contracts on it.
I use this drone.yml to create images of ganache and of truffle and deploy it in my containers :
kind: pipeline
type: docker
name: default
networks:
tmp:
name: network
steps:
- name: docker-crypto
image: plugins/docker
settings:
dockerfile: ganache/Dockerfile
context: .
registry: *********************
repo: **********************************/fantomcoin
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
- name: docker-contracts
image: plugins/docker
settings:
dockerfile: Dockerfile
context: .
registry: *************
repo: *****************************/fantomcontracts
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
- name: deploy-crypto
image: ******************************-dockerproxy-clientdrone:latest
networks:
- tmp
environment:
IMAGENAME: ****************************fantomcoin:latest
CONTAINERNAME: fantomcoin
COMMAND: create
OVERWRITE: true
depends_on: [ docker-crypto ]
- name: deploy-contracts
image: ************************************clientdrone:latest
networks:
- tmp
environment:
IMAGENAME: ****************************fantomcontracts:latest
CONTAINERNAME: fantomcontracts
COMMAND: create
OVERWRITE: true
depends_on: [ deploy-crypto,docker-contracts ]
These are the DockerFile of each images :
Image of fantomcoin
FROM node:alpine
COPY . /app
WORKDIR /app
RUN npm install -g [email protected]
RUN npm install [email protected]
RUN npm install -g truffle
ENTRYPOINT ["truffle", "deploy"]
Image of fantomcontracts
FROM node:alpine
WORKDIR /app
RUN npm install -g [email protected]
RUN npm install [email protected]
RUN npm install -g ganache-cli
EXPOSE 7545
ENTRYPOINT [ "ganache-cli", "-p", "7545" ]
And finally here is my truffle-config.js file for my truffle project :
/**
* Use this file to configure your truffle project. It's seeded with some
* common settings for different networks and features like migrations,
* compilation and testing. Uncomment the ones you need or modify
* them to suit your project as necessary.
*
* More information about configuration can be found at:
*
* https://trufflesuite.com/docs/truffle/reference/configuration
*
* To deploy via Infura you'll need a wallet provider (like @truffle/hdwallet-provider)
* to sign your transactions before they're sent to a remote public node. Infura accounts
* are available for free at: infura.io/register.
*
* You'll also need a mnemonic - the twelve word phrase the wallet uses to generate
* public/private key pairs. If you're publishing your code to GitHub make sure you load this
* phrase from a file you've .gitignored so it doesn't accidentally become public.
*
*/
// require('dotenv').config();
// const mnemonic = process.env["MNEMONIC"];
// const infuraProjectId = process.env["INFURA_PROJECT_ID"];
// const HDWalletProvider = require('@truffle/hdwallet-provider');
module.exports = {
/**
* Networks define how you connect to your ethereum client and let you set the
* defaults web3 uses to send transactions. If you don't specify one truffle
* will spin up a development blockchain for you on port 9545 when you
* run `develop` or `test`. You can ask a truffle command to use a specific
* network from the command line, e.g
*
* $ truffle test --network <network-name>
*/
networks: {
// Useful for testing. The `development` name is special - truffle uses it by default
// if it's defined here and no other network is specified at the command line.
// You should run a client (like ganache, geth, or parity) in a separate terminal
// tab if you use this network and you must also set the `host`, `port` and `network_id`
// options below to some value.
//
development: {
host: "fantomcoin", // Localhost (default: none)
port: 7545, // Standard Ethereum port (default: none)
network_id: "*", // Any network (default: none)
},
goerli: {
provider: () => new HDWalletProvider(mnemonic, `https://goerli.infura.io/v3/${infuraProjectId}`),
network_id: 5, // Goerli's id
chain_id: 5
}
},
// Set default mocha options here, use special reporters etc.
mocha: {
// timeout: 100000
},
// Configure your compilers
compilers: {
solc: {
version: "0.8.13", // Fetch exact version from solc-bin
}
}
};
My Problem is whenever I deploy these images, the truffle project cannot resolve host :
Couldn't connect to node http://fantomcoin:7545
Anybody faced the same issues ? Thank you :)
I tried to change the host on every sides as well as ports