Skip to content

Commit

Permalink
Merge pull request #60 from ethpandaops/fix/multi-arch-build-v2
Browse files Browse the repository at this point in the history
refactor(build): amd/arm builds
  • Loading branch information
mattevans authored Jan 17, 2025
2 parents 560957b + 7c5c3c9 commit 4c56994
Show file tree
Hide file tree
Showing 5 changed files with 187 additions and 118 deletions.
9 changes: 9 additions & 0 deletions install.bats
Original file line number Diff line number Diff line change
Expand Up @@ -492,13 +492,20 @@ EOF
}

@test "setup_docker_contributoor pulls image" {
# Set required variables
CONTRIBUTOOR_VERSION="1.0.0"

# Mock docker commands
function docker() {
case "$1" in
"system")
return 0
;;
"pull")
if [[ "$2" != "ethpandaops/contributoor:${CONTRIBUTOOR_VERSION}" ]]; then
echo "Invalid image tag: $2"
return 1
fi
return 0
;;
esac
Expand All @@ -507,6 +514,8 @@ EOF
export -f docker

run setup_docker_contributoor
echo "Status: $status"
echo "Output: $output"
[ "$status" -eq 0 ]
}

Expand Down
2 changes: 0 additions & 2 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,6 @@ setup_installer() {
}

setup_docker_contributoor() {
docker system prune -f >/dev/null 2>&1 || true

docker pull "ethpandaops/contributoor:${CONTRIBUTOOR_VERSION}" >/dev/null 2>&1 &
spinner $!
wait $!
Expand Down
19 changes: 11 additions & 8 deletions internal/sidecar/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (

type DockerSidecar interface {
SidecarRunner
GetComposeEnv() []string
}

// dockerSidecar is a basic service for interacting with the docker container.
Expand Down Expand Up @@ -81,7 +82,7 @@ func (s *dockerSidecar) Start() error {
args := append(s.getComposeArgs(), "up", "-d", "--pull", "always")

cmd := exec.Command("docker", args...)
cmd.Env = s.getComposeEnv()
cmd.Env = s.GetComposeEnv()

if output, err := cmd.CombinedOutput(); err != nil {
return fmt.Errorf("failed to start containers: %w\nOutput: %s", err, string(output))
Expand All @@ -103,7 +104,7 @@ func (s *dockerSidecar) Stop() error {
"--timeout", "30")

cmd := exec.Command("docker", args...)
cmd.Env = s.getComposeEnv()
cmd.Env = s.GetComposeEnv()

if output, err := cmd.CombinedOutput(); err != nil {
// Don't return error here, try our fallback.
Expand All @@ -128,7 +129,7 @@ func (s *dockerSidecar) IsRunning() (bool, error) {
// versions, then this will return a non running state.
args := append(s.getComposeArgs(), "ps", "--format", "{{.State}}")
cmd := exec.Command("docker", args...)
cmd.Env = s.getComposeEnv()
cmd.Env = s.GetComposeEnv()

output, err := cmd.Output()
if err == nil {
Expand Down Expand Up @@ -170,9 +171,10 @@ func (s *dockerSidecar) Update() error {

// updateSidecar updates the docker image to the specified version.
func (s *dockerSidecar) updateSidecar() error {
cfg := s.sidecarCfg.Get()

image := fmt.Sprintf("%s:%s", s.installerCfg.DockerImage, cfg.Version)
var (
cfg = s.sidecarCfg.Get()
image = fmt.Sprintf("%s:%s", s.installerCfg.DockerImage, cfg.Version)
)

cmd := exec.Command("docker", "pull", image)
if output, err := cmd.CombinedOutput(); err != nil {
Expand Down Expand Up @@ -215,7 +217,8 @@ func validateComposePath(path string) error {
return nil
}

func (s *dockerSidecar) getComposeEnv() []string {
// GetComposeEnv returns the environment variables for docker-compose.
func (s *dockerSidecar) GetComposeEnv() []string {
cfg := s.sidecarCfg.Get()

env := append(
Expand Down Expand Up @@ -263,7 +266,7 @@ func (s *dockerSidecar) Logs(tailLines int, follow bool) error {
}

cmd := exec.Command("docker", args...)
cmd.Env = s.getComposeEnv()
cmd.Env = s.GetComposeEnv()
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Dir = filepath.Dir(s.composePath)
Expand Down
Loading

0 comments on commit 4c56994

Please sign in to comment.