diff --git a/shared/services/rocketpool/assets/install/templates/addons/gww/addon_gww.tmpl b/shared/services/rocketpool/assets/install/templates/addons/gww/addon_gww.tmpl index 802b502e0..0ba4980b2 100644 --- a/shared/services/rocketpool/assets/install/templates/addons/gww/addon_gww.tmpl +++ b/shared/services/rocketpool/assets/install/templates/addons/gww/addon_gww.tmpl @@ -10,6 +10,11 @@ services: image: ${GWW_IMAGE_TAG_OVERRIDE:-${GWW_IMAGE_TAG_DEFAULT}} user: root container_name: {{.Smartnode.ProjectName}}_addon_gww + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped volumes: - {{.RocketPoolDirectory}}/addons/gww:/gww diff --git a/shared/services/rocketpool/assets/install/templates/alertmanager.tmpl b/shared/services/rocketpool/assets/install/templates/alertmanager.tmpl index 517cefda6..f443df462 100644 --- a/shared/services/rocketpool/assets/install/templates/alertmanager.tmpl +++ b/shared/services/rocketpool/assets/install/templates/alertmanager.tmpl @@ -9,6 +9,11 @@ services: alertmanager: image: ${ALERTMANAGER_IMAGE_TAG_OVERRIDE:-${ALERTMANAGER_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_alertmanager + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped command: # https://prometheus.io/docs/alerting/latest/configuration/ diff --git a/shared/services/rocketpool/assets/install/templates/commit-boost.tmpl b/shared/services/rocketpool/assets/install/templates/commit-boost.tmpl index 6187f4cd6..fc7e823ef 100644 --- a/shared/services/rocketpool/assets/install/templates/commit-boost.tmpl +++ b/shared/services/rocketpool/assets/install/templates/commit-boost.tmpl @@ -9,6 +9,11 @@ services: commit-boost: image: ${COMMIT_BOOST_IMAGE_TAG_OVERRIDE:-${COMMIT_BOOST_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_commit-boost + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped ports: [{{.GetCommitBoostOpenPorts}}] volumes: diff --git a/shared/services/rocketpool/assets/install/templates/eth1.tmpl b/shared/services/rocketpool/assets/install/templates/eth1.tmpl index d4274b970..1288e9bc9 100644 --- a/shared/services/rocketpool/assets/install/templates/eth1.tmpl +++ b/shared/services/rocketpool/assets/install/templates/eth1.tmpl @@ -10,6 +10,11 @@ services: image: ${EC_IMAGE_TAG_OVERRIDE:-${EC_IMAGE_TAG_DEFAULT}} user: root container_name: {{.Smartnode.ProjectName}}_eth1 + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped stop_signal: {{.GetECStopSignal}} stop_grace_period: 15m diff --git a/shared/services/rocketpool/assets/install/templates/eth2.tmpl b/shared/services/rocketpool/assets/install/templates/eth2.tmpl index 75790243e..ac6a7475a 100644 --- a/shared/services/rocketpool/assets/install/templates/eth2.tmpl +++ b/shared/services/rocketpool/assets/install/templates/eth2.tmpl @@ -10,6 +10,11 @@ image: ${CURL_IMAGE_TAG_OVERRIDE:-${CURL_IMAGE_TAG_DEFAULT}} user: root container_name: {{.Smartnode.ProjectName}}_genesis_downloader + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" volumes: - eth2clientdata:/ethclient - {{.RocketPoolDirectory}}/scripts:/setup:ro @@ -29,6 +34,11 @@ services: image: ${BN_IMAGE_TAG_OVERRIDE:-${BN_IMAGE_TAG_DEFAULT}} user: root container_name: {{.Smartnode.ProjectName}}_eth2 + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped stop_grace_period: 3m {{- $p2p := (or .ConsensusCommon.P2pPort.String "9001")}} diff --git a/shared/services/rocketpool/assets/install/templates/exporter.tmpl b/shared/services/rocketpool/assets/install/templates/exporter.tmpl index 8c0284b24..5096883d7 100644 --- a/shared/services/rocketpool/assets/install/templates/exporter.tmpl +++ b/shared/services/rocketpool/assets/install/templates/exporter.tmpl @@ -9,6 +9,11 @@ services: node-exporter: image: ${EXPORTER_IMAGE_TAG_OVERRIDE:-${EXPORTER_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_exporter + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" cap_drop: - ALL user: "65534:65534" diff --git a/shared/services/rocketpool/assets/install/templates/grafana.tmpl b/shared/services/rocketpool/assets/install/templates/grafana.tmpl index 5e84d06e4..d9c53ea44 100644 --- a/shared/services/rocketpool/assets/install/templates/grafana.tmpl +++ b/shared/services/rocketpool/assets/install/templates/grafana.tmpl @@ -10,6 +10,11 @@ services: grafana: image: ${GRAFANA_IMAGE_TAG_OVERRIDE:-${GRAFANA_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_grafana + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped environment: - GF_SERVER_HTTP_PORT={{$port}} diff --git a/shared/services/rocketpool/assets/install/templates/mev-boost.tmpl b/shared/services/rocketpool/assets/install/templates/mev-boost.tmpl index 2d27af0fb..0c0730aeb 100644 --- a/shared/services/rocketpool/assets/install/templates/mev-boost.tmpl +++ b/shared/services/rocketpool/assets/install/templates/mev-boost.tmpl @@ -9,6 +9,11 @@ services: mev-boost: image: ${MEV_BOOST_IMAGE_TAG_OVERRIDE:-${MEV_BOOST_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_mev-boost + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped ports: [{{.GetMevBoostOpenPorts}}] volumes: diff --git a/shared/services/rocketpool/assets/install/templates/node.tmpl b/shared/services/rocketpool/assets/install/templates/node.tmpl index bac2d172a..693428bca 100644 --- a/shared/services/rocketpool/assets/install/templates/node.tmpl +++ b/shared/services/rocketpool/assets/install/templates/node.tmpl @@ -9,6 +9,11 @@ services: node: image: ${SMARTNODE_IMAGE_TAG_OVERRIDE:-${SMARTNODE_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_node + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped tty: true ports: [{{.GetNodeOpenPorts}}] diff --git a/shared/services/rocketpool/assets/install/templates/prometheus.tmpl b/shared/services/rocketpool/assets/install/templates/prometheus.tmpl index 3cc91dbf0..64aef3074 100644 --- a/shared/services/rocketpool/assets/install/templates/prometheus.tmpl +++ b/shared/services/rocketpool/assets/install/templates/prometheus.tmpl @@ -9,6 +9,11 @@ services: prometheus: image: ${PROMETHEUS_IMAGE_TAG_OVERRIDE:-${PROMETHEUS_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_prometheus + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped command: - "--web.listen-address=:{{or .Prometheus.Port.Value "9091"}}" diff --git a/shared/services/rocketpool/assets/install/templates/validator.tmpl b/shared/services/rocketpool/assets/install/templates/validator.tmpl index 24f8c6746..1e7ceaa3a 100644 --- a/shared/services/rocketpool/assets/install/templates/validator.tmpl +++ b/shared/services/rocketpool/assets/install/templates/validator.tmpl @@ -10,6 +10,11 @@ services: image: ${VC_IMAGE_TAG_OVERRIDE:-${VC_IMAGE_TAG_DEFAULT}} user: root container_name: {{.Smartnode.ProjectName}}_validator + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped stop_grace_period: 3m volumes: diff --git a/shared/services/rocketpool/assets/install/templates/watchtower.tmpl b/shared/services/rocketpool/assets/install/templates/watchtower.tmpl index cfce37509..e93d03c73 100644 --- a/shared/services/rocketpool/assets/install/templates/watchtower.tmpl +++ b/shared/services/rocketpool/assets/install/templates/watchtower.tmpl @@ -9,6 +9,11 @@ services: watchtower: image: ${SMARTNODE_IMAGE_TAG_OVERRIDE:-${SMARTNODE_IMAGE_TAG_DEFAULT}} container_name: {{.Smartnode.ProjectName}}_watchtower + logging: + driver: json-file + options: + max-size: "100m" + max-file: "3" restart: unless-stopped tty: true volumes: diff --git a/shared/services/rocketpool/client.go b/shared/services/rocketpool/client.go index 96d720897..b6d1d3804 100644 --- a/shared/services/rocketpool/client.go +++ b/shared/services/rocketpool/client.go @@ -947,7 +947,7 @@ func (c *Client) resolvedImage(key, fallback string) string { // Creates a marker file on the execution client volume (used for prune and DB migrations). func (c *Client) TouchEthclientMarker(container, volume, marker string) error { - cmd := fmt.Sprintf("docker run --rm --name %s -v %s:/ethclient %s sh -c 'touch /ethclient/%s'", container, volume, shellescape.Quote(c.resolvedImage(config.ImageAlpine, "alpine:3.24.2")), marker) + cmd := fmt.Sprintf("docker run --rm --log-driver json-file --log-opt max-size=100m --log-opt max-file=3 --name %s -v %s:/ethclient %s sh -c 'touch /ethclient/%s'", container, volume, shellescape.Quote(c.resolvedImage(config.ImageAlpine, "alpine:3.24.2")), marker) output, err := c.readOutput(cmd) if err != nil { return err @@ -986,7 +986,7 @@ func (c *Client) RunNethermindPruneStarter(executionContainerName string) error for i := 0; i < retryCount; i++ { command := fmt.Sprintf(`-m 30 -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"admin_prune","params":[],"id":%d}' %s`, i+1, nethermindAdminUrl) - cmdText := fmt.Sprintf(`docker run --quiet --rm --name curl%s --network container:%s %s -Ss %s`, pruneStarterContainerSuffix, executionContainerName, shellescape.Quote(c.resolvedImage(config.ImageCurl, "curlimages/curl:8.22.0")), command) + cmdText := fmt.Sprintf(`docker run --quiet --rm --log-driver json-file --log-opt max-size=100m --log-opt max-file=3 --name curl%s --network container:%s %s -Ss %s`, pruneStarterContainerSuffix, executionContainerName, shellescape.Quote(c.resolvedImage(config.ImageCurl, "curlimages/curl:8.22.0")), command) if i != 0 { fmt.Printf("Trying again in %v... (%d/%d)\n", retryTime, i+1, retryCount)