Skip to content

Commit

Permalink
DEV: Remove use of --squash flag and switch to buildx (#743)
Browse files Browse the repository at this point in the history
Why this change?

In CI, we are seeing the following warning message:

```
WARNING: experimental flag squash is removed with BuildKit. You should squash inside build using a multi-stage Dockerfile for efficiency.
```

Basically, the `--squash` flag has not been working for quite some time
and is redundant.

What does this change do?

* This change removes the use of the `--squash` flag.

* This change uses the `buildx` tool in `auto_build.rb` as we prepare to
  build images for multiple platforms.
  • Loading branch information
tgxworld authored Oct 16, 2023
1 parent 246f03b commit 0c93b22
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 21 deletions.
14 changes: 2 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@ jobs:
runs-on: ubuntu-20.04${{ ((github.event_name != 'schedule') && '-8core') || '' }}
timeout-minutes: 90
steps:
- name: enable experimental docker features
run: |
sudo bash -c 'echo "{ \"cgroup-parent\": \"/actions_job\",\"experimental\":true}" > /etc/docker/daemon.json'
sudo service docker restart
docker version -f '{{.Server.Experimental}}'
- uses: actions/checkout@v3
with:
fetch-depth: 1
Expand Down Expand Up @@ -142,14 +137,9 @@ jobs:
id: buildx
uses: docker/setup-buildx-action@v2
- name: build slim image
working-directory: image/base
run: |
docker buildx build . --load \
-f slim.Dockerfile \
--platform linux/arm64 \
--tag discourse/base:aarch64-slim
docker tag discourse/base:aarch64-slim localhost:5000/discourse/base:aarch64-slim
docker push localhost:5000/discourse/base:aarch64-slim
cd image && ruby auto_build.rb base_slim_arm64
docker tag discourse/base:aarch64-slim localhost:5000/discourse/base:build_slim_arm64
- name: tag slim image as release
working-directory: image/base
run: |
Expand Down
44 changes: 35 additions & 9 deletions image/auto_build.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
# simple build file to be used locally by Sam
#
require 'pty'
require 'optparse'
require "pty"
require "optparse"

images = {
base_slim: { name: 'base', tag: "discourse/base:build_slim", squash: true, extra_args: '-f slim.Dockerfile' },
base: { name: 'base', tag: "discourse/base:build", extra_args: '-f release.Dockerfile' },
discourse_test_build: { name: 'discourse_test', tag: "discourse/discourse_test:build", squash: false},
discourse_dev: { name: 'discourse_dev', tag: "discourse/discourse_dev:build", squash: false },
base_slim: {
name: "base",
tag: "discourse/base:build_slim",
extra_args: "-f slim.Dockerfile",
},
base_slim_arm64: {
name: "base",
tag: "discourse/base:build_slim_arm64",
extra_args: "-f slim.Dockerfile --platform linux/arm64",
},
base: {
name: "base",
tag: "discourse/base:build",
extra_args: "-f release.Dockerfile",
},
discourse_test_build: {
name: "discourse_test",
tag: "discourse/discourse_test:build",
},
discourse_dev: {
name: "discourse_dev",
tag: "discourse/discourse_dev:build",
},
}

def run(command)
Expand All @@ -30,12 +49,19 @@ def run(command)
end

def build(image)
lines = run("cd #{image[:name]} && docker build . --no-cache --tag #{image[:tag]} #{image[:squash] ? '--squash' : ''} #{image[:extra_args] ? image[:extra_args] : ''}")
raise "Error building the image for #{image[:name]}: #{lines[-1]}" if lines[-1] =~ /successfully built/
lines =
run(
"cd #{image[:name]} && docker buildx build . --load --no-cache --tag #{image[:tag]} #{image[:extra_args] ? image[:extra_args] : ""}",
)
if lines[-1] =~ /successfully built/
raise "Error building the image for #{image[:name]}: #{lines[-1]}"
end
end

def dev_deps()
run("sed -e 's/\(db_name: discourse\)/\1_development/' ../templates/postgres.template.yml > discourse_dev/postgres.template.yml")
run(
"sed -e 's/\(db_name: discourse\)/\1_development/' ../templates/postgres.template.yml > discourse_dev/postgres.template.yml",
)
run("cp ../templates/redis.template.yml discourse_dev/redis.template.yml")
end

Expand Down

0 comments on commit 0c93b22

Please sign in to comment.