top | item 43303386

(no title)

cdfuller | 11 months ago

Agreed. This project isn't that upfront this is a wrapper around 4 commands. Docker build, docker push, docker pull and compose up.

discuss

order

MyOutfitIsVague|11 months ago

Whew, you're not joking. This whole thing is 156 lines of Go. I'd probably have just used a shell script for this kind of thing.

0xbadcafebee|11 months ago

I think we can all agree that any Go program that just executes some other program, is way better than a shell script!

I mean, what if you needed to change the way it worked? With bash you'd have to open a text editor, change a line, and save the file! And on top of that you need to understand shell scripting!

With Go, you can set up your development environment, edit the source code, run the compiler, download the external dependencies, generate a new binary, and copy it to your server. And all this requires is learning the Go language and its development model. This is clearly more advanced, and thus better.

xnyan|11 months ago

I know ansible is not sexy or resource efficient, but it would be a handful of lines in a single task.yml and it would work reliably out of the box. Previously the part that was too much effort for me to be reliable was often bootstrapping the python environment on the host, but uv has been a game changer (at least it has been from my team) in terms of being able to efficiently and reliably ensure the exact python environment we want.

morcus|11 months ago

For small projects you can also add something like Watchtower to your compose file and then you need only build and push the image.

And I assume you want to be building once to test your changes anyways, so you really only need to push.

ianburrell|11 months ago

This is perfect use for Make. Have command for build, push, and deploy. Then have one to do them all together. The advantage is can do individual commands, and put one for building and testing locally.

Long scripts suck in Makefile, but can call external scripts for anything big.