Giter Club home page Giter Club logo

docker-go-dev's Introduction

deis/go-dev

Build Status

⚠ This project is deprecated ⚠

deis/go-dev is no longer actively maintained.

A Go language development toolbox.

Some Azure projects use this Docker image as a standard build and test environment, but it is intended to be useful to any Go developer. Please help make deis/go-dev better by creating issues and submitting pull requests.

Image Contents

  • based on Ubuntu 22.04
  • az: Azure cloud command-line tool
  • azcopy: Utility for copying data to/from Microsoft Azure Blob and File storage
  • delve: debugger for the Go programming language
  • Docker: Docker binaries to be able to bind mount /var/run/docker.sock in the dev environment container
  • ginkgo: BDD testing framework for Go
  • go-bindata: converts any file into Go source code
  • golangci-lint: concurrent runner for Go linting tools
  • goss: YAML-based tool for validating a server's configuration
  • gox: simple Go cross-compiling tool
  • helm: Kubernetes package manager
  • jq: command-line JSON processor
  • jwt: tool for creating and parsing JSON Web Tokens
  • k: automatically run the correct version of kubectl every time
  • kubectl: Kubernetes command-line client
  • Packer: build automated machine images
  • ruby: ruby scripting language
  • shellcheck: static analysis for shell scripts
  • shfmt: shell script parser, formatter, and interpreter
  • shyaml: YAML access from the command line
  • test-cover.sh: test coverage for multiple Go packages
  • unzip: list, test, and extract files from ZIP archives
  • upx: executable packer
  • vim: text editor
  • wamerican: American English dictionary words for /usr/share/dict
  • yq: command-line YAML processor

Usage

Mount your local Go code into a container's $GOPATH to run any go command or one of the included tools or scripts. Here's an example of running ginko for deis/builder:

$ docker run --rm \
  --volume $GOPATH/src/github.com/deis/builder:/go/src/github.com/deis/builder \
  --workdir /go/src/github.com/deis/builder \
  quay.io/deis/go-dev:latest \
  ginkgo -r

Releases

The latest deis/go-dev Docker image is available at:

To publish a new release of deis/go-dev, use the deisrel tool:

$ deisrel release docker-go-dev v1.28.7
Doing a dry run of the component release...

Creating changelog for docker-go-dev with tag v1.28.6 through commit 1a69c5502ef1bca014fbd3581451d1421829a42f


### v1.28.6 -> v1.28.7
...

If the CHANGELOG contents look correct, run the same command again but add the argument --dry-run=false. You will be prompted to confirm again before any tag or release is written to GitHub.

docker-go-dev's People

Contributors

aaaart3m avatar aledbf avatar alexeldeib avatar amanohar avatar arschles avatar cryptophobia avatar feiyushi avatar grosa1 avatar jackfrancis avatar jackquincy avatar jchauncey avatar joshua-anderson avatar jsturtevant avatar julienstroheker avatar krancour avatar maksim-paskal avatar maurgi avatar mboersma avatar seleznev avatar sgoings avatar tariq1890 avatar thomastaylor312 avatar ultimateboy avatar vdice avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-go-dev's Issues

Readme needs updates

The readme should be updated to ensure a more accurate description of image contents since new tools have been added recently.

Remove deprecated projects

Remove archived/deprecated projects, such as:

  • dep
  • glide
  • gb
  • gometalinter
  • go-bindata
  • Helm v2 (replace with v3?)
  • golint (not deprecated but is it still needed with golangci-lint?)
    anything else?

@mboersma what do you think?

Remove "immutable" go-bindata conveniences

Wonder if anyone else is having similar issues. @tariq1890 has a change in Azure/acs-engine here that statically pins a go-bindata version to a particular repo to avoid downstream changes conflicting:

Azure/acs-engine#3527

Basically, should we remove the go get convenience from this image and require each use case deliver their own, opinionated (and specific) version?

Thoughts?

rename repository to simpler "go-dev"

It's just confusing to have the repo deis/docker-go-dev produce the docker image quay.io/deis/go-dev, and I would argue prepending "docker" is either redundant or packaging-specific.

Migrate from Travis

Please be aware travis-ci.org will be shutting down in several weeks, with all accounts migrating to travis-ci.com. Please stay tuned here for more information.

Might need to migrate PRs from Travis

Proposal: include kubectl on the image

I'll grant that the need for this isn't immediately obvious, but I think I can cite some defensible reasons for it...

I've been investigating how best to enable functional and integration tests for the router. These really cannot be accomplished without a k8s cluster to test against, so I have also investigated what it would take to run a containerized k8s cluster. It's not that hard to do, but there are certain difficulties one encounters. See deis/router#140 for some discussion of that. One such difficulty is that the k8s apiserver only binds to localhost:8080 on the docker host (not 0.0.0.0:8080). This can be problematic for anyone using docker-machine as their docker host is essentially remote and their kubectl client would be unable to talk to the apiserver.

By including the kubectl binary in the containerized development environment, any test targets or other processes that must manipulate the containerized k8s test cluster could also be containerized, and in the case of anyone running docker-machine, this moves these processes to the "remote" docker host where the fact that the apiserver is bound to localhost:8080 is no longer a problem because it's accessible.

Including kubectl in the dev environment isn't any kind of magic bullet, but it's a good step toward making these sort of tests more feasible at the component level.

I'm interested to know what others think about possibly including kubectl.

Travis deployment is broken

Tagged builds in master all have been ending with:

Skipping a deployment with the script provider because this branch is not permitted

Does there need to be an on: master line in the deploy stanza to whitelist this branch explicitly? I couldn't tell from the Travis docs.

(I published quay.io/deis/go-dev:0.11.0 old-school, so this issue isn't blocking anything currently.)

UPX v3.94 break up darwin binary

OS: MacOS 11.4
Docker: 20.10.7

build binary:

git clone [email protected]:Azure/aks-engine.git
cd aks-engine
docker run --rm \
-v $(pwd):/go/src/github.com/Azure/aks-engine \
-w /go/src/github.com/Azure/aks-engine \
mcr.microsoft.com/oss/azcu/go-dev:v1.32.2 make dist

run binary:

./_dist/aks-engine-nightly-darwin-amd64/aks-engine
zsh: killed     ./_dist/aks-engine-nightly-darwin-amd64/aks-engine

if remove upx compresstion in Makefile - it's will be ok - if update upx to latest v3.96 it's also will be ok

Azure/aks-engine#4513

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.