Skip to content

Commit 416f2f9

Browse files
authored
Docker (#17)
* refresh build, update lambdaric * point to actual container location * build from ./docker context * swing again * pointer to file * some day we will succeed * another path issue * more paths * need more permission * name push job * remove set-output usage * try matrix again * upload to correct registry * try setting annotations * clean up merge * fix matrix defn
1 parent 43a9a6c commit 416f2f9

File tree

2 files changed

+31
-22
lines changed

2 files changed

+31
-22
lines changed

.github/workflows/build.yml

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ jobs:
1212
matrix: ${{ steps.set-matrix.outputs.matrix }}
1313
steps:
1414
- id: set-matrix
15-
run: echo "::set-output name=matrix::{\"include\":[{\"type\":\"amd64\",\"image\":\"amazon/aws-lambda-provided:al2\", \"arch\":\"x86_64\"},{\"type\":\"arm64\",\"image\":\"amazon/aws-lambda-provided:al2.2025.07.17.11-arm64\", \"arch\":\"arm64\"}] }"
16-
15+
run: echo "matrix={\"include\":[{\"type\":\"amd64\",\"image\":\"amazon/aws-lambda-provided:al2\", \"arch\":\"x86_64\"},{\"type\":\"arm64\",\"image\":\"amazon/aws-lambda-provided:al2.2025.07.17.11-arm64\", \"arch\":\"arm64\"}] }" >> $GITHUB_OUTPUT
1716

1817
containers:
1918
needs: config
2019
runs-on: ubuntu-latest
2120
permissions:
21+
contents: read
2222
packages: write
23+
attestations: write
24+
id-token: write
2325
strategy:
2426
fail-fast: true
2527
matrix: ${{fromJson(needs.config.outputs.matrix)}}
@@ -69,8 +71,10 @@ jobs:
6971
if [[ $GITHUB_REF == refs/tags/* ]]; then
7072
VERSION=${GITHUB_REF/refs\/tags\//}
7173
fi
72-
echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
73-
echo ::set-output name=VERSION::${VERSION}
74+
75+
BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
76+
echo "BUILD_DATE=$BUILD_DATE" >> $GITHUB_OUTPUT
77+
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
7478
7579
# Extract metadata (tags, labels) for Docker
7680
# https://github.com/docker/metadata-action
@@ -79,28 +83,32 @@ jobs:
7983
uses: docker/metadata-action@v5
8084
with:
8185
images: |
82-
ghcr.io/pdal/pdal
83-
docker.io/pdal/pdal
86+
ghcr.io/pdal/lambda
8487
tags: |
8588
type=ref,event=branch
8689
type=ref,event=pr
8790
type=semver,pattern={{version}}
8891
type=semver,pattern={{major}}.{{minor}}
8992
93+
env:
94+
DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index
95+
9096
- name: Build image
9197
uses: docker/build-push-action@v6
9298
with:
99+
id: push
93100
push: ${{ env.PUSH_PACKAGES == 'true' }}
94101
builder: ${{ steps.buildx.outputs.name }}
95102
context: .
96-
file: ./Dockerfile
103+
file: ./docker/Dockerfile.runner
97104
platforms: linux/${{ matrix.type}}
98105
build-args: |
99106
LAMBDA_IMAGE=${{ matrix.image }}
100107
RIE_ARCH=${{ matrix.arch }}
101108
tags: |
102109
ghcr.io/pdal/lambda:${{ steps.prep.outputs.VERSION }}
103110
ghcr.io/pdal/lambda:latest
111+
annotations: ${{ steps.meta.outputs.annotations }}
104112
labels: |
105113
org.opencontainers.image.title=${{ github.event.repository.name }}
106114
org.opencontainers.image.description=${{ github.event.repository.description }}
@@ -114,7 +122,8 @@ jobs:
114122
if: ${{ env.PUSH_PACKAGES == 'true' }}
115123
uses: actions/attest-build-provenance@v2
116124
with:
117-
subject-name: ghcr.io/pdal/pdal
125+
126+
subject-name: ghcr.io/pdal/lambda
118127
subject-digest: ${{ steps.push.outputs.digest }}
119128
push-to-registry: ${{ env.PUSH_PACKAGES == 'true' }}
120129

docker/Dockerfile.runner

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
ARG LAMBDA_IMAGE="amazon/aws-lambda-provided:al2"
22
ARG RIE_ARCH="amd64"
33

4-
FROM --platform=$TARGETPLATFORM condaforge/miniforge3:latest as condasetup
4+
FROM condaforge/miniforge3:latest AS condasetup
55
LABEL MAINTAINER="Howard Butler <[email protected]>"
66

77
ARG TARGETPLATFORM
@@ -13,16 +13,16 @@ RUN printf "I'm building for TARGETPLATFORM=${TARGETPLATFORM}" \
1313
&& printf "With uname -s : " && uname -s \
1414
&& printf "and uname -m : " && uname -mm
1515

16-
ENV CONDA_ENV_NAME "pdal"
17-
ENV CONDAENV "/opt/conda/envs/${CONDA_ENV_NAME}"
16+
ENV CONDA_ENV_NAME="pdal"
17+
ENV CONDAENV="/opt/conda/envs/${CONDA_ENV_NAME}"
1818

1919

2020
# Create the environment:
21-
COPY build-environment.yml .
21+
COPY ./docker/build-environment.yml .
2222
RUN conda env create -f build-environment.yml
2323
RUN mamba update --all -y
2424

25-
COPY run-environment.yml .
25+
COPY ./docker/run-environment.yml .
2626
RUN conda env create -f run-environment.yml
2727

2828

@@ -32,7 +32,7 @@ RUN conda-pack -n ${CONDA_ENV_NAME} --dest-prefix=/var/task -o /tmp/env.tar && \
3232
rm /tmp/env.tar
3333

3434

35-
FROM --platform=$TARGETPLATFORM ${LAMBDA_IMAGE:?} as al2
35+
FROM --platform=$TARGETPLATFORM ${LAMBDA_IMAGE:?} AS al2
3636

3737
ARG RIE_ARCH
3838
ARG LAMBDA_IMAGE
@@ -43,16 +43,16 @@ ENV TARGETARCH=${TARGETARCH:-amd64}
4343

4444

4545

46-
ENV CONDAENV "/var/task"
47-
ENV CONDA_PREFIX "/var/task"
48-
ENV TARGETPLATFORM "${TARGETPLATFORM}"
46+
ENV CONDAENV="/var/task"
47+
ENV CONDA_PREFIX="/var/task"
48+
ENV TARGETPLATFORM="${TARGETPLATFORM}"
4949
COPY --from=condasetup /venv ${CONDAENV}
5050

5151

5252

53-
ENV PROJ_LIB ${CONDAENV}/share/proj
53+
ENV PROJ_LIB=${CONDAENV}/share/proj
5454
ENV PROJ_NETWORK=TRUE
55-
ENV PATH $PATH:${CONDAENV}/bin
55+
ENV PATH=$PATH:${CONDAENV}/bin
5656
ENV LD_LIBRARY_PATH=${CONDAENV}/lib
5757
ENV HOME=/var/task/
5858

@@ -63,7 +63,7 @@ RUN chmod +x /usr/bin/aws-lambda-rie
6363

6464

6565
WORKDIR /var/task
66-
COPY python-entry.sh ./
67-
COPY handlers/python/ /var/task/lib/python3.11/site-packages/pdal_lambda
68-
COPY root-bashrc /root/.bashrc
66+
COPY ./docker/python-entry.sh ./
67+
COPY ./handlers/python/ /var/task/lib/python3.11/site-packages/pdal_lambda
68+
COPY ./docker/root-bashrc /root/.bashrc
6969
ENTRYPOINT [ "/var/task/python-entry.sh" ]

0 commit comments

Comments
 (0)