Skip to content

Commit a0f76b9

Browse files
committed
Move to a single Dockerfile
1 parent ba8245f commit a0f76b9

File tree

23 files changed

+66
-100
lines changed

23 files changed

+66
-100
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build_output

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/build_output
22
.DS_Store
3+
nginx-asg-sync

Makefile

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,34 @@
11
GO_DOCKER_RUN = docker run --rm -v $(shell pwd):/go/src/github.com/nginxinc/nginx-asg-sync -v $(shell pwd)/build_output:/build_output -w /go/src/github.com/nginxinc/nginx-asg-sync/cmd/sync
2-
GOLANG_CONTAINER = golang:1.15
3-
BUILD_IN_CONTAINER = 1
42
GOFLAGS ?= -mod=vendor
53

4+
export DOCKER_BUILDKIT = 1
5+
66
all: amazon centos7 ubuntu-xenial amazon2 ubuntu-bionic
77

88
test:
9-
ifeq ($(BUILD_IN_CONTAINER),1)
10-
$(GO_DOCKER_RUN) $(GOLANG_CONTAINER) go test
11-
else
129
GO111MODULE=on GOFLAGS='$(GOFLAGS)' go test ./...
13-
endif
1410

1511
lint:
1612
golangci-lint run
1713

18-
compile: test
19-
ifeq ($(BUILD_IN_CONTAINER),1)
20-
$(GO_DOCKER_RUN) $(GOLANG_CONTAINER) go build -o /build_output/nginx-asg-sync
21-
else
22-
GO111MODULE=on GOFLAGS='$(GOFLAGS)' go build -o ./build_output/nginx-asg-sync github.com/nginxinc/nginx-asg-sync/cmd/sync
23-
endif
24-
25-
amazon: compile
26-
make -C build/package/builders/amazon/
14+
amazon:
15+
docker build -t amazon-builder --target rpm_based --build-arg CONTAINER_VERSION=amazonlinux:1 -f build/Dockerfile .
2716
docker run --rm -v $(shell pwd)/build/package/rpm:/rpm -v $(shell pwd)/build_output:/build_output amazon-builder
2817

29-
amazon2: compile
30-
make -C build/package/builders/amazon2/
18+
amazon2:
19+
docker build -t amazon2-builder --target rpm_based --build-arg CONTAINER_VERSION=amazonlinux:2 -f build/Dockerfile .
3120
docker run --rm -v $(shell pwd)/build/package/rpm:/rpm -v $(shell pwd)/build_output:/build_output amazon2-builder
3221

33-
centos7: compile
34-
make -C build/package/builders/centos7/
22+
centos7:
23+
docker build -t centos7-builder --target rpm_based --build-arg CONTAINER_VERSION=centos:7 -f build/Dockerfile .
3524
docker run --rm -v $(shell pwd)/build/package/rpm:/rpm -v $(shell pwd)/build_output:/build_output centos7-builder
3625

37-
ubuntu-xenial: compile
38-
make -C build/package/builders/ubuntu-xenial/
26+
ubuntu-xenial:
27+
docker build -t ubuntu-xenial-builder --target deb_based --build-arg CONTAINER_VERSION=ubuntu:xenial --build-arg OS_VERSION=xenial -f build/Dockerfile .
3928
docker run --rm -v $(shell pwd)/build/package/debian:/debian -v $(shell pwd)/build_output:/build_output ubuntu-xenial-builder
4029

41-
ubuntu-bionic: compile
42-
make -C build/package/builders/ubuntu-bionic/
30+
ubuntu-bionic:
31+
docker build -t ubuntu-bionic-builder --target deb_based --build-arg CONTAINER_VERSION=ubuntu:bionic --build-arg OS_VERSION=bionic -f build/Dockerfile .
4332
docker run --rm -v $(shell pwd)/build/package/debian:/debian -v $(shell pwd)/build_output:/build_output ubuntu-bionic-builder
4433

4534
clean:

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ nginx-asg-sync runs as a system service and supports the start/stop/restart comm
150150

151151
For Amazon Linux 1, run: `$ sudo start|stop|restart nginx-asg-sync`
152152

153-
For Ubuntu 16.04 and 18.04, CentOS7/RHEL7 and Amazon Linux 2, run: `$ sudo service nginx-asg-sync start|stop|restart`
153+
For Ubuntu 16.04, 18.04, 20.04, CentOS7/RHEL7 and Amazon Linux 2, run: `$ sudo service nginx-asg-sync start|stop|restart`
154154

155155
## Troubleshooting
156156

@@ -169,6 +169,7 @@ where `<os>` is the target OS. The following values are allowed:
169169
* `centos7` for CentOS7/RHEL7
170170
* `ubuntu-xenial` for Ubuntu 16.04
171171
* `ubuntu-bionic` for Ubuntu 18.04
172+
* `ubuntu-focal` for Ubuntu 20.04
172173

173174
If you run make without any arguments, it will build software packages for all supported OSes.
174175

build/Dockerfile

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
ARG CONTAINER_VERSION
2+
ARG GOLANG_CONTAINER=golang:1.15
3+
4+
FROM $GOLANG_CONTAINER AS builder
5+
WORKDIR /go/src/github.com/nginxinc/nginx-asg-sync/cmd/sync
6+
COPY . /go/src/github.com/nginxinc/nginx-asg-sync/
7+
8+
RUN go build -o /nginx-asg-sync
9+
10+
#---------------------------------------------------------------------------------------------
11+
12+
FROM ${CONTAINER_VERSION} as rpm_based
13+
14+
RUN yum install -y rpmdevtools
15+
ADD build/package/builders/rpm_based/build.sh /
16+
17+
COPY --from=builder /nginx-asg-sync /nginx-asg-sync
18+
19+
ENTRYPOINT ["/build.sh"]
20+
21+
#---------------------------------------------------------------------------------------------
22+
23+
FROM ${CONTAINER_VERSION} as deb_based
24+
25+
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install debhelper dh-systemd -y
26+
ADD build/package/builders/deb_based/build.sh /
27+
28+
COPY --from=builder /nginx-asg-sync /nginx-asg-sync
29+
30+
ARG PACKAGE_VERSION
31+
ARG OS_VERSION
32+
ENV PACKAGE_VERSION=${PACKAGE_VERSION}
33+
ENV OS_VERSION=${OS_VERSION}
34+
35+
ENTRYPOINT ["/build.sh"]

build/package/builders/amazon/Dockerfile

Lines changed: 0 additions & 6 deletions
This file was deleted.

build/package/builders/amazon/Makefile

Lines changed: 0 additions & 2 deletions
This file was deleted.

build/package/builders/amazon2/Dockerfile

Lines changed: 0 additions & 6 deletions
This file was deleted.

build/package/builders/amazon2/Makefile

Lines changed: 0 additions & 2 deletions
This file was deleted.

build/package/builders/amazon2/build.sh

Lines changed: 0 additions & 6 deletions
This file was deleted.

0 commit comments

Comments
 (0)