Buildfile and Procfile when deploying program to aws

My question is similar to this one and I have followed the suggestions from the last comment in this question Deploying a simple GoLang Application to AWS Elastic Beanstalk - #3 by awais . I am however still getting an error with the following, I know that there is something I must be doing wrong in this process

application.go:7:2: cannot find package “GitHub - gorilla/mux: Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍” in any of:

My code structure is this ![27 AM|690x135]


My build.sh

#!/bin/bash

go get GitHub - gorilla/mux: Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍
go build -o bin/application application.go

My buildfile.text
make: ./build.sh

My Procfile.text
web: bin/application

I am new to this but the only thing I can think of it that maybe the buildfile and/or Procfile might need a different extension .

I then use zip …/eb.zip -r * .[^.]* to zip my project and upload it to AWS but it always fails once it gets done uploading . With the message that it can not find package GitHub - gorilla/mux: Package gorilla/mux is a powerful HTTP router and URL matcher for building Go web servers with 🦍 . Is there something I’m missing with this process … my code compiles locally and this is how it looks

package main

import (
	"net/http"
	"./Controllers"
	"runtime"
	"github.com/gorilla/mux"
	"time"
)

func main() {
        println(runtime.Version())
	runtime.GOMAXPROCS(runtime.NumCPU())
	r := mux.NewRouter()
	r.HandleFunc("/testping", Controllers.TestPing)
	http.Handle("/", r)

	r.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir("public"))))
	srv := &http.Server{
		ReadTimeout:  20 * time.Second,
		WriteTimeout: 20 * time.Second,
		IdleTimeout:  120 * time.Second,
		Addr:         ":5000",
	}

	srv.ListenAndServe()
}

For me https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/go-environment.html reads as if build- and proc files are ignored when there is a bin/application.go as it is mentioned first in the list of bulletpoints how your application is tried to get built.

Try to rename it and change your buildfiles accordingly.

Disclaimer: never used AWS, this is solely based on my understanding of the documentation linked above.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.