Skip to content

Commit f9cbb73

Browse files
authored
Merge pull request #51 from kenchan0130/support-arm
Support arm64
2 parents 1b84a50 + 4570438 commit f9cbb73

5 files changed

Lines changed: 67 additions & 43 deletions

File tree

.github/workflows/ci.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,28 @@ on:
1010
jobs:
1111
test:
1212
runs-on: ubuntu-latest
13-
env:
14-
REGISTRY_USERNAME: kenchan0130
15-
REGISTRY_HOST: index.docker.io
16-
1713
steps:
1814
- uses: actions/checkout@v3
1915
- name: Install dgoss
2016
run: |
2117
curl -sfL https://goss.rocks/install | sudo sh
22-
- name: Build docker image
23-
run: |
24-
make build
25-
- name: Show docker images
26-
run: |
27-
docker images
18+
- name: Set up QEMU
19+
uses: docker/setup-qemu-action@v2
20+
- name: Set up Docker Buildx
21+
uses: docker/setup-buildx-action@v2
2822
- name: Run test
2923
run: |
30-
make test
24+
for platform in ${PLATFORMS}; do
25+
echo "Testing ${platform}"
26+
make build PLATFORM="${platform}"
27+
docker images
28+
make test PLATFORM="${platform}"
29+
done
30+
env:
31+
PLATFORMS: linux/amd64 linux/arm64
3132

3233
lint:
3334
runs-on: ubuntu-latest
3435
steps:
3536
- uses: actions/checkout@v3
36-
- name: Dockerfile lint
37-
uses: brpaz/hadolint-action@master
37+
- uses: hadolint/hadolint-action@v3.1.0

.github/workflows/release-develop.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v3
13+
- name: Set up QEMU
14+
uses: docker/setup-qemu-action@v2
15+
- name: Set up Docker Buildx
16+
uses: docker/setup-buildx-action@v2
1317
- name: Build and Push to GitHub
1418
run: |
15-
make build RELEASE_TAGS="develop"
1619
echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY_HOST}" -u "${REGISTRY_USERNAME}" --password-stdin
17-
make push RELEASE_TAGS="develop"
20+
make release RELEASE_TAGS="develop"
1821
env:
1922
REGISTRY_HOST: ghcr.io
2023
REGISTRY_USERNAME: ${{ github.repository_owner }}
@@ -25,11 +28,14 @@ jobs:
2528
runs-on: ubuntu-latest
2629
steps:
2730
- uses: actions/checkout@v3
31+
- name: Set up QEMU
32+
uses: docker/setup-qemu-action@v2
33+
- name: Set up Docker Buildx
34+
uses: docker/setup-buildx-action@v2
2835
- name: Build and Push to Docker Hub
2936
run: |
30-
make build RELEASE_TAGS="develop"
3137
echo "${REGISTRY_TOKEN}" | docker login -u "${REGISTRY_USERNAME}" --password-stdin
32-
make push RELEASE_TAGS="develop"
38+
make release RELEASE_TAGS="develop"
3339
env:
3440
REGISTRY_HOST: index.docker.io
3541
REGISTRY_USERNAME: kenchan0130

.github/workflows/release.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,14 @@ jobs:
3333
runs-on: ubuntu-latest
3434
steps:
3535
- uses: actions/checkout@v3
36+
- name: Set up QEMU
37+
uses: docker/setup-qemu-action@v2
38+
- name: Set up Docker Buildx
39+
uses: docker/setup-buildx-action@v2
3640
- name: Build and Push to GitHub
3741
run: |
38-
make build
3942
echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY_HOST}" -u "${REGISTRY_USERNAME}" --password-stdin
40-
make push
43+
make release
4144
env:
4245
REGISTRY_HOST: ghcr.io
4346
REGISTRY_USERNAME: ${{ github.repository_owner }}
@@ -50,11 +53,14 @@ jobs:
5053
runs-on: ubuntu-latest
5154
steps:
5255
- uses: actions/checkout@v3
56+
- name: Set up QEMU
57+
uses: docker/setup-qemu-action@v2
58+
- name: Set up Docker Buildx
59+
uses: docker/setup-buildx-action@v2
5360
- name: Build and Push to Docker Hub
5461
run: |
55-
make build
5662
echo "${REGISTRY_TOKEN}" | docker login -u "${REGISTRY_USERNAME}" --password-stdin
57-
make push
63+
make release
5864
env:
5965
REGISTRY_HOST: index.docker.io
6066
REGISTRY_USERNAME: kenchan0130

Dockerfile

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
FROM php:8.2-apache
2-
LABEL maintainer "Tadayuki Onishi <tt.tanishi100@gmail.com>"
1+
FROM --platform=$BUILDPLATFORM php:8.2-apache
32

43
RUN apt-get update && \
54
apt-get -y install apt-transport-https git curl vim --no-install-recommends && \
6-
rm -r /var/lib/apt/lists/*
7-
8-
RUN curl -sSL -o /tmp/mo https://git.io/get-mo && \
5+
rm -r /var/lib/apt/lists/* && \
6+
curl -sSL -o /tmp/mo https://git.io/get-mo && \
97
chmod +x /tmp/mo
108

119
# Docker build
@@ -14,34 +12,39 @@ ARG GIT_ORIGIN=unkown
1412
ARG IMAGE_NAME=unkown
1513
LABEL git-revision=$GIT_REVISION \
1614
git-origin=$GIT_ORIGIN \
17-
image-name=$IMAGE_NAME
15+
image-name=$IMAGE_NAME \
16+
maintainer="Tadayuki Onishi <tt.tanishi100@gmail.com>"
1817

1918
# SimpleSAMLphp
2019
ARG SIMPLESAMLPHP_VERSION
2120
RUN curl -sSL -o /tmp/simplesamlphp.tar.gz https://github.com/simplesamlphp/simplesamlphp/releases/download/v$SIMPLESAMLPHP_VERSION/simplesamlphp-$SIMPLESAMLPHP_VERSION.tar.gz && \
2221
tar xzf /tmp/simplesamlphp.tar.gz -C /tmp && \
2322
mv /tmp/simplesamlphp-* /var/www/simplesamlphp && \
2423
touch /var/www/simplesamlphp/modules/exampleauth/enable
25-
RUN echo "<?php" > /var/www/simplesamlphp/metadata/shib13-sp-remote.php
24+
2625
COPY config/simplesamlphp/config.php /var/www/simplesamlphp/config
2726
COPY config/simplesamlphp/authsources.php /var/www/simplesamlphp/config
2827
COPY config/simplesamlphp/saml20-sp-remote.php /var/www/simplesamlphp/metadata
2928
COPY config/simplesamlphp/server.crt /var/www/simplesamlphp/cert/
3029
COPY config/simplesamlphp/server.pem /var/www/simplesamlphp/cert/
3130

31+
RUN echo "<?php" > /var/www/simplesamlphp/metadata/shib13-sp-remote.php
32+
3233
# Apache
3334
ENV HTTP_PORT 8080
3435

3536
COPY config/apache/ports.conf.mo /tmp
36-
RUN /tmp/mo /tmp/ports.conf.mo > /etc/apache2/ports.conf
3737
COPY config/apache/simplesamlphp.conf.mo /tmp
38-
RUN /tmp/mo /tmp/simplesamlphp.conf.mo > /etc/apache2/sites-available/simplesamlphp.conf
38+
RUN /tmp/mo /tmp/ports.conf.mo > /etc/apache2/ports.conf && \
39+
/tmp/mo /tmp/simplesamlphp.conf.mo > /etc/apache2/sites-available/simplesamlphp.conf
3940

41+
# hadolint ignore=DL3059
4042
RUN a2dissite 000-default.conf default-ssl.conf && \
4143
a2enmod rewrite && \
4244
a2ensite simplesamlphp.conf
4345

4446
# Clean up
47+
# hadolint ignore=DL3059
4548
RUN rm -rf /tmp/*
4649

4750
# Set work dir

Makefile

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,39 @@ NAME := $(shell basename $(CURDIR) | sed -e "s/^docker-//g")
22
REVISION := $(shell git rev-parse --short HEAD)
33
ORIGIN := $(shell git remote get-url origin)
44
SIMPLESAMLPHP_VERSION := $(shell cat .simplesamlphp_version)
5-
REGISTRY_HOST := $(REGISTRY_HOST)
6-
USER := $(REGISTRY_USERNAME)
7-
IMAGE := $(REGISTRY_HOST)/$(USER)/$(NAME)
5+
REGISTRY_HOST ?= index.docker.io
6+
REGISTRY_USERNAME ?= defaultusername
7+
IMAGE := $(REGISTRY_HOST)/$(REGISTRY_USERNAME)/$(NAME)
88
RELEASE_TAGS := $(SIMPLESAMLPHP_VERSION) latest
99

10+
.PHONY: release
11+
release: ## build and push docker images. e.g.) make release
12+
docker buildx build \
13+
--push \
14+
--platform linux/amd64,linux/arm64 \
15+
--build-arg GIT_REVISION="$(REVISION)" \
16+
--build-arg GIT_ORIGIN="$(ORIGIN)" \
17+
--build-arg IMAGE_NAME="$(IMAGE)" \
18+
--build-arg SIMPLESAMLPHP_VERSION="$(SIMPLESAMLPHP_VERSION)" \
19+
$(addprefix -t $(IMAGE):,$(RELEASE_TAGS)) .
20+
1021
.PHONY: build
11-
build:
12-
docker build \
22+
build: ## build a docker image. e.g.) make build PLATFORM=linux/amd64
23+
docker buildx build \
24+
--load \
25+
--platform "$(PLATFORM)" \
1326
--build-arg GIT_REVISION="$(REVISION)" \
1427
--build-arg GIT_ORIGIN="$(ORIGIN)" \
1528
--build-arg IMAGE_NAME="$(IMAGE)" \
1629
--build-arg SIMPLESAMLPHP_VERSION="$(SIMPLESAMLPHP_VERSION)" \
1730
$(addprefix -t $(IMAGE):,$(RELEASE_TAGS)) .
1831

1932
.PHONY: test
20-
test:
33+
test: ## test a docker image. e.g.) make test PLATFORM=linux/amd64
2134
dgoss run \
35+
--rm \
36+
--platform "$(PLATFORM)" \
2237
-e SIMPLESAMLPHP_SP_ENTITY_ID=http://app.example.com \
2338
-e SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE=http://localhost/simplesaml/module.php/saml/sp/saml2-acs.php/test-sp \
2439
-e SIMPLESAMLPHP_SP_SINGLE_LOGOUT_SERVICE=http://localhost/simplesaml/module.php/saml/sp/saml2-logout.php/test-sp \
25-
"$(USER)/$(NAME)"
26-
27-
.PHONY: push
28-
push:
29-
@for TAG in $(RELEASE_TAGS); do\
30-
docker push $(IMAGE):$$TAG; \
31-
done
40+
"$(IMAGE)"

0 commit comments

Comments
 (0)