David Heinemeier Hansson
a22e27dbf8
Reveal configured dockerfile path
2023-05-02 14:07:47 +02:00
David Heinemeier Hansson
bb74a74dc4
Style
2023-05-02 14:07:30 +02:00
Jberczel
bfb70b2118
Add local dependencies check
...
Add checks for:
* Docker installed locally
* Docker buildx plugin installed locally
* Dockerfile exists
If checks fail, it will halt deployment and provide more specific error messages.
Also adds a cli subcommand:
`mrsk build dependencies`
Fixes : #109 and #237
2023-05-01 16:32:41 -04:00
Donal McBreen
051556674f
Minimise holding the deploy lock
...
If we get an error we'll only hold the deploy lock if it occurs while
trying to switch the running containers.
We'll also move tagging the latest image from when the image is pulled
to just before the container switch. This ensures that earlier errors
don't leave the hosts with an updated latest tag while still running the
older version.
2023-04-12 12:09:56 +01:00
Jeremy Daer
c137b38c87
Only redact the non-sensitive bits of build args and env vars.
...
* `-e [REDACTED]` → `-e SOME_SECRET=[REDACTED]`
* Replaces `Utils.redact` with `Utils.sensitive` to clarify that we're
indicating redactability, not actually performing redaction.
* Redacts from YAML output, including `mrsk config` (fixes #96 )
2023-04-05 09:45:28 -07:00
Tobias Bühlmann
078d68b170
Push <image>:latest in addition to <image>:<git-ref>
2023-03-27 12:52:11 +02:00
Donal McBreen
1ed4a37da2
Pull latest image tag, so we can identity it
...
`docker image ls` doesn't tell us what the latest deployed image is (e.g
if we've rolled back). Pull the latest image tag through to the server
so we can use it instead.
2023-03-23 14:39:32 +00:00
Samuel Sieg
ff88ee0b22
Allow setting the build context used for building
2023-03-04 10:59:52 +01:00
Samuel Sieg
b6934b0f41
Allow configuring the Dockerfile used for building
2023-03-04 10:59:23 +01:00
David Heinemeier Hansson
42b343436d
Remove images of the same name before pulling a new one
...
Or you'll end up with untagged dupes.
2023-02-20 18:06:16 +01:00
David Heinemeier Hansson
8ec94f105c
Tag images with service label so we can prune exclusively
2023-02-15 13:41:03 +01:00
David Heinemeier Hansson
c29a177a7a
DRY the use of build options into one call
2023-02-15 13:23:14 +01:00
David Heinemeier Hansson
0433619518
Tag new builds with latest
2023-02-08 14:08:36 +01:00
Tobias Bühlmann
554a3558ab
Move image tag to proper position
2023-02-05 18:39:52 +01:00
Xavier Noria
539752e9bd
Load with Zeitwerk
2023-02-03 22:45:12 +01:00
David Heinemeier Hansson
03fdb9a9ac
Chain builder setup for better resiliency
...
Context may already exist while buildx does not
2023-01-27 15:41:28 +01:00
David Heinemeier Hansson
a16e5ce886
Use class specific buildx instances
...
So we don't have to muck with the machine default, and can swap between configurations without tearing down the old builder.
2023-01-22 10:47:22 +01:00
David Heinemeier Hansson
2ad135c237
No builder definition needed for native multiarch
2023-01-22 10:06:20 +01:00
David Heinemeier Hansson
287798ad57
Add option for remote building of single-arch
2023-01-22 10:06:04 +01:00
David Heinemeier Hansson
8e69514b78
Actually use the build secrets!
2023-01-20 14:05:31 +01:00
David Heinemeier Hansson
9bb1fb7166
Move argumentize to Utils
2023-01-20 10:26:36 +01:00
David Heinemeier Hansson
454015b294
Reuse argumentize for build secrets
2023-01-20 10:24:23 +01:00
David Heinemeier Hansson
52fe8d358e
Secrets come just as keys
2023-01-20 10:13:03 +01:00
David Heinemeier Hansson
a8779f7055
Simpler API
...
No need for redactions, since values aren't shared.
2023-01-20 10:07:17 +01:00
Nathan Anderson
e516f427cd
Enable docker secrets in the builder as a more secure alternative to build args.
2023-01-18 17:35:36 -05:00
David Heinemeier Hansson
760a87fe06
Redact build args (since they are often tokens)
2023-01-15 13:15:14 +01:00
David Heinemeier Hansson
bb8a8d3399
Singular form
2023-01-15 12:31:10 +01:00
David Heinemeier Hansson
bafbde52fe
Add build args
2023-01-15 10:35:17 +01:00
David Heinemeier Hansson
bf98a0308c
Namespace buildx and contexts
...
To prevent clashes on remote builders
2023-01-13 17:29:53 +01:00
David Heinemeier Hansson
fd5172266e
More expansive info on builder
2023-01-13 10:28:46 +01:00
David Heinemeier Hansson
e85c8161df
Style
2023-01-13 10:28:35 +01:00
David Heinemeier Hansson
f177ee4cfe
Make remote builder quack as any other builder
2023-01-13 10:16:28 +01:00
David Heinemeier Hansson
ea9a50ec95
Extract command #combine
2023-01-13 10:00:11 +01:00
David Heinemeier Hansson
6ccb3d2319
Allow for fully native builds too
...
Skipping multiarch if there's a platform match between dev and prod.
2023-01-13 09:31:47 +01:00