Skip to content
This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Commit 31ac0bd

Browse files
authored
Remove deprecated stuff (#317)
* 🗑️ Remove Oracle driver from container image * 🚚 Move examples in specific directory * 🗑️ Remove use of oracle version in released artifacts * 🗑️ Remove user creation from image exporter * 🗑️ Use same Dockerfile instructions for all containers flavour
1 parent 0088c89 commit 31ac0bd

File tree

9 files changed

+21
-188
lines changed

9 files changed

+21
-188
lines changed

.github/workflows/pull-request.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ jobs:
7676
- config
7777
outputs:
7878
version: ${{ steps.version.outputs.version }}
79-
oracle-version: ${{ steps.version.outputs.oracle-version }}
8079
steps:
8180
- name: Checkout
8281
uses: actions/checkout@v3
@@ -91,9 +90,7 @@ jobs:
9190
- name: Get makefile versions
9291
id: version
9392
run: |
94-
oracle_version=$(make oracle-version)
9593
version=$(make version)
96-
echo "oracle-version=$oracle_version" >> $GITHUB_OUTPUT
9794
echo "version=$version" >> $GITHUB_OUTPUT
9895
9996
- name: Setup Golang cache

.github/workflows/release.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ jobs:
6565
- config
6666
outputs:
6767
version: ${{ steps.version.outputs.version }}
68-
oracle-version: ${{ steps.version.outputs.oracle-version }}
6968
steps:
7069
- name: Checkout
7170
uses: actions/checkout@v3
@@ -78,9 +77,7 @@ jobs:
7877
- name: Get makefile versions
7978
id: version
8079
run: |
81-
oracle_version=$(make oracle-version)
8280
version=$(make version)
83-
echo "oracle-version=$oracle_version" >> $GITHUB_OUTPUT
8481
echo "version=$version" >> $GITHUB_OUTPUT
8582
8683
- name: Setup Golang cache

Dockerfile

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,32 @@
1-
# Can't use a variable to refer to external image directly with COPY.
2-
# So using image in a step but doing nothing
3-
ARG ORACLE_IMAGE
4-
FROM ${ORACLE_IMAGE} as oracle-image
5-
1+
ARG BASE_IMAGE
62
# Build is starting here
73
FROM docker.io/library/golang:1.19 AS build
84

9-
ARG ORACLE_VERSION
10-
ENV ORACLE_VERSION=${ORACLE_VERSION}
11-
ARG MAJOR_VERSION
12-
ENV MAJOR_VERSION=${MAJOR_VERSION}
13-
ENV LD_LIBRARY_PATH "/usr/lib/oracle/${MAJOR_VERSION}/client64/lib"
14-
15-
# Retrieving binaries from oracle image
16-
COPY --from=oracle-image /usr/lib/oracle /usr/lib/oracle
17-
COPY --from=oracle-image /usr/share/oracle /usr/share/oracle
18-
COPY --from=oracle-image /usr/include/oracle /usr/include/oracle
19-
20-
RUN echo $LD_LIBRARY_PATH >> /etc/ld.so.conf.d/oracle.conf && ldconfig
21-
225
WORKDIR /go/src/oracledb_exporter
236
COPY . .
247
RUN go get -d -v
258

269
ARG VERSION
2710
ENV VERSION ${VERSION:-0.1.0}
2811

29-
ENV PKG_CONFIG_PATH /go/src/oracledb_exporter
30-
3112
RUN GOOS=linux GOARCH=amd64 go build -v -ldflags "-X main.Version=${VERSION} -s -w"
3213

33-
FROM docker.io/library/ubuntu:22.10
14+
FROM ${BASE_IMAGE} as exporter
3415
LABEL org.opencontainers.image.authors="Seth Miller,Yannig Perré <[email protected]>"
3516
LABEL org.opencontainers.image.description="Oracle DB Exporter"
3617

3718
ENV VERSION ${VERSION:-0.1.0}
3819
ENV DEBIAN_FRONTEND=noninteractive
3920

40-
# We only need lib directory
41-
COPY --from=build /usr/lib/oracle /usr/lib/oracle
42-
RUN apt-get -qq update && \
43-
apt-get -qq install -y --no-install-recommends tzdata libaio1 && \
44-
rm -rf /var/lib/apt/lists/*
45-
46-
RUN adduser --system --uid 1000 --group appuser \
47-
&& usermod -a -G 0,appuser appuser
48-
49-
ARG ORACLE_VERSION
50-
ENV ORACLE_VERSION=${ORACLE_VERSION}
51-
ARG MAJOR_VERSION
52-
ENV MAJOR_VERSION=${MAJOR_VERSION}
53-
ENV LD_LIBRARY_PATH "/usr/lib/oracle/${MAJOR_VERSION}/client64/lib"
54-
RUN echo $LD_LIBRARY_PATH >> /etc/ld.so.conf.d/oracle.conf && ldconfig
55-
5621
ARG LEGACY_TABLESPACE
5722
ENV LEGACY_TABLESPACE=${LEGACY_TABLESPACE}
58-
COPY --chown=appuser:appuser --from=build /go/src/oracledb_exporter/oracledb_exporter /oracledb_exporter
23+
COPY --from=build /go/src/oracledb_exporter/oracledb_exporter /oracledb_exporter
5924
ADD ./default-metrics${LEGACY_TABLESPACE}.toml /default-metrics.toml
6025

6126
ENV DATA_SOURCE_NAME system/oracle@oracle/xe
6227

6328
EXPOSE 9161
6429

65-
USER appuser
30+
USER 1000
6631

67-
ENTRYPOINT ["/oracledb_exporter"]
32+
ENTRYPOINT ["/oracledb_exporter"]

Makefile

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,9 @@ ARCH_TYPE ?= $(subst x86_64,amd64,$(patsubst i%86,386,$(ARCH)))
44
GOOS ?= $(shell go env GOOS)
55
GOARCH ?= $(shell go env GOARCH)
66
VERSION ?= 0.5.0
7-
MAJOR_VERSION ?= 21
8-
MINOR_VERSION ?= 8
9-
ORACLE_VERSION ?= $(MAJOR_VERSION).$(MINOR_VERSION)
10-
ORACLE_IMAGE ?= ghcr.io/oracle/oraclelinux8-instantclient:$(MAJOR_VERSION)
11-
PKG_VERSION ?= $(ORACLE_VERSION).0.0.0-1.el8.$(ARCH)
12-
GLIBC_VERSION ?= 2.35-r0
137
LDFLAGS := -X main.Version=$(VERSION)
148
GOFLAGS := -ldflags "$(LDFLAGS) -s -w"
15-
BUILD_ARGS = --build-arg VERSION=$(VERSION) --build-arg ORACLE_VERSION=$(ORACLE_VERSION) \
16-
--build-arg MAJOR_VERSION=$(MAJOR_VERSION) --build-arg ORACLE_IMAGE=$(ORACLE_IMAGE)
9+
BUILD_ARGS = --build-arg VERSION=$(VERSION)
1710
LEGACY_TABLESPACE = --build-arg LEGACY_TABLESPACE=.legacy-tablespace
1811
OUTDIR = ./dist
1912

@@ -22,27 +15,28 @@ IMAGE_ID ?= $(IMAGE_NAME):$(VERSION)
2215
IMAGE_ID_LATEST?= $(IMAGE_NAME):latest
2316
RELEASE ?= true
2417

18+
UBUNTU_BASE_IMAGE ?= docker.io/library/ubuntu:23.04
19+
ORACLE_LINUX_BASE_IMAGE ?= docker.io/library/oraclelinux:8-slim
20+
ALPINE_BASE_IMAGE ?= docker.io/library/alpine:3.17
21+
2522
ifeq ($(GOOS), windows)
2623
EXT?=.exe
2724
else
2825
EXT?=
2926
endif
3027

31-
export LD_LIBRARY_PATH ORACLE_VERSION
28+
export LD_LIBRARY_PATH
3229

3330
version:
3431
@echo "$(VERSION)"
3532

36-
oracle-version:
37-
@echo "$(ORACLE_VERSION)"
38-
3933
.PHONY: go-build
4034
go-build:
4135
@echo "Build $(OS_TYPE)"
42-
mkdir -p $(OUTDIR)/oracledb_exporter-$(VERSION)-ora$(ORACLE_VERSION).$(GOOS)-$(GOARCH)/
43-
go build $(GOFLAGS) -o $(OUTDIR)/oracledb_exporter-$(VERSION)-ora$(ORACLE_VERSION).$(GOOS)-$(GOARCH)/oracledb_exporter$(EXT)
36+
mkdir -p $(OUTDIR)/oracledb_exporter-$(VERSION).$(GOOS)-$(GOARCH)/
37+
go build $(GOFLAGS) -o $(OUTDIR)/oracledb_exporter-$(VERSION).$(GOOS)-$(GOARCH)/oracledb_exporter$(EXT)
4438
cp default-metrics.toml $(OUTDIR)/$(DIST_DIR)
45-
(cd dist ; tar cfz oracledb_exporter-$(VERSION)-ora$(ORACLE_VERSION).$(GOOS)-$(GOARCH).tar.gz oracledb_exporter-$(VERSION)-ora$(ORACLE_VERSION).$(GOOS)-$(GOARCH))
39+
(cd dist ; tar cfz oracledb_exporter-$(VERSION).$(GOOS)-$(GOARCH).tar.gz oracledb_exporter-$(VERSION).$(GOOS)-$(GOARCH))
4640

4741
.PHONY: go-build-linux-amd64
4842
go-build-linux-amd64:
@@ -95,16 +89,12 @@ push-images:
9589
@make --no-print-directory push-oraclelinux-image
9690
@make --no-print-directory push-alpine-image
9791

98-
glibc.apk:
99-
wget -q -O sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
100-
wget -q -O glibc-$(GLIBC_VERSION).apk https://github.com/sgerrand/alpine-pkg-glibc/releases/download/$(GLIBC_VERSION)/glibc-$(GLIBC_VERSION).apk
101-
10292
oraclelinux-image:
10393
if DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect "$(IMAGE_ID)-oraclelinux" > /dev/null; then \
10494
echo "Image \"$(IMAGE_ID)-oraclelinux\" already exists on ghcr.io"; \
10595
else \
106-
docker build --progress=plain -f oraclelinux/Dockerfile $(BUILD_ARGS) -t "$(IMAGE_ID)-oraclelinux" . && \
107-
docker build --progress=plain -f oraclelinux/Dockerfile $(BUILD_ARGS) $(LEGACY_TABLESPACE) -t "$(IMAGE_ID)-oraclelinux_legacy-tablespace" . && \
96+
docker build --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-oraclelinux" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) . && \
97+
docker build --progress=plain $(BUILD_ARGS) $(LEGACY_TABLESPACE) -t "$(IMAGE_ID)-oraclelinux_legacy-tablespace" --build-arg BASE_IMAGE=$(ORACLE_LINUX_BASE_IMAGE) . && \
10898
docker tag "$(IMAGE_ID)-oraclelinux" "$(IMAGE_NAME):oraclelinux"; \
10999
fi
110100

@@ -126,8 +116,8 @@ ubuntu-image:
126116
if DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect "$(IMAGE_ID)" > /dev/null; then \
127117
echo "Image \"$(IMAGE_ID)\" already exists on ghcr.io"; \
128118
else \
129-
docker build --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)" . && \
130-
docker build --progress=plain $(BUILD_ARGS) $(LEGACY_TABLESPACE) -t "$(IMAGE_ID)_legacy-tablespace" . && \
119+
docker build --progress=plain $(BUILD_ARGS) --build-arg BASE_IMAGE=$(UBUNTU_BASE_IMAGE) -t "$(IMAGE_ID)" . && \
120+
docker build --progress=plain $(BUILD_ARGS) --build-arg BASE_IMAGE=$(UBUNTU_BASE_IMAGE) $(LEGACY_TABLESPACE) -t "$(IMAGE_ID)_legacy-tablespace" . && \
131121
docker tag "$(IMAGE_ID)" "$(IMAGE_ID_LATEST)"; \
132122
fi
133123

@@ -150,8 +140,8 @@ alpine-image:
150140
if DOCKER_CLI_EXPERIMENTAL=enabled docker manifest inspect "$(IMAGE_ID)-alpine" > /dev/null; then \
151141
echo "Image \"$(IMAGE_ID)-alpine\" already exists on ghcr.io"; \
152142
else \
153-
docker build --progress=plain -f alpine/Dockerfile $(BUILD_ARGS) -t "$(IMAGE_ID)-alpine" . && \
154-
docker build --progress=plain -f alpine/Dockerfile $(BUILD_ARGS) $(LEGACY_TABLESPACE) -t "$(IMAGE_ID)-alpine_legacy-tablespace" . && \
143+
docker build --progress=plain $(BUILD_ARGS) -t "$(IMAGE_ID)-alpine" --build-arg BASE_IMAGE=$(ALPINE_BASE_IMAGE) . && \
144+
docker build --progress=plain $(BUILD_ARGS) $(LEGACY_TABLESPACE) --build-arg BASE_IMAGE=$(ALPINE_BASE_IMAGE) -t "$(IMAGE_ID)-alpine_legacy-tablespace" . && \
155145
docker tag "$(IMAGE_ID)-alpine" "$(IMAGE_NAME):alpine"; \
156146
fi
157147

@@ -168,4 +158,4 @@ else
168158
@echo "Can't find cosign.key file"
169159
endif
170160

171-
.PHONY: version build deps go-test clean docker glibc.apk
161+
.PHONY: version build deps go-test clean docker

alpine/Dockerfile

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

oraclelinux/Dockerfile

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

0 commit comments

Comments
 (0)