Network components' configuration files
We have demonstrated how peers, orderers, and CAs can be configured in docker-compose YAML files. But such configurations are meant to override settings that have already been made by default in the components’ respective images. Though a detailed description of these configurations is beyond the scope of this book, we will list the respective files and mention how a user may make changes to them.
For a peer, a core.yaml file (https://github.com/hyperledger/fabric/blob/release-1.1/sampleconfig/core.yaml) contains all of the important runtime settings, including but not limited to addresses, port numbers, security and privacy, and the gossip protocol. You can create your own file and sync it to the container using a custom Dockerfile instead of the one that is used by the hyperledger/fabric-peer image by default. If you log in to a running peer container (let’s take the Exporter organization’s peer's container from the network we just launched):
docker exec -it f86e50e6fc76 bash
Then you will find the core.yaml file in the folder /etc/hyperledger/fabric/.
Similarly, an orderer’s default configuration lies in an orderer.yaml file (https://github.com/hyperledger/fabric/blob/release-1.1/sampleconfig/orderer.yaml), which is also synced to /etc/hyperledger/fabric/ on the container running the hyperledger/fabric-orderer image. Keep in mind that both the core.yaml and orderer.yaml files are synced to the peer and orderer containers, so if you wish to create custom files, you will need to sync these YAML files to both these containers.
A Fabric CA server also has a configuration file called fabric-ca-server-config.yaml (http://hyperledger-fabric-ca.readthedocs.io/en/latest/serverconfig.htm), which is synced to /etc/hyperledger/fabric-ca-server/ on the container running the hyperledger/fabric-ca image. You can create and sync custom configurations as you would for a peer or an orderer.