mirror of
https://github.com/valitydev/dominant.git
synced 2024-11-06 02:25:17 +00:00
TD-222: Reuse valitydev/action-deploy-docker@v2 (#16)
* Sync Dockerfiles w/ valitydev/erlang-templates
This commit is contained in:
parent
eb1cccb861
commit
50ff8393dd
54
.github/workflows/build-and-push-image.yaml
vendored
54
.github/workflows/build-and-push-image.yaml
vendored
@ -1,54 +0,0 @@
|
|||||||
name: Build and push Docker image
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [master]
|
|
||||||
|
|
||||||
env:
|
|
||||||
REGISTRY: ghcr.io
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Log in to the Container registry
|
|
||||||
uses: docker/login-action@v1
|
|
||||||
with:
|
|
||||||
registry: ${{ env.REGISTRY }}
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Construct tags / labels for an image
|
|
||||||
id: meta
|
|
||||||
uses: docker/metadata-action@v3
|
|
||||||
with:
|
|
||||||
images: |
|
|
||||||
${{ env.REGISTRY }}/${{ github.repository }}
|
|
||||||
tags: |
|
|
||||||
type=sha
|
|
||||||
|
|
||||||
# https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#setting-an-environment-variable
|
|
||||||
- name: Update environment variables
|
|
||||||
run: grep -v '^#' .env >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v1
|
|
||||||
|
|
||||||
- name: Setup Buildx
|
|
||||||
uses: docker/setup-buildx-action@v1
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v2
|
|
||||||
with:
|
|
||||||
push: true
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
cache-from: type=gha
|
|
||||||
cache-to: type=gha,mode=max
|
|
||||||
build-args: |
|
|
||||||
OTP_VERSION=${{ env.OTP_VERSION }}
|
|
||||||
THRIFT_VERSION=${{ env.THRIFT_VERSION }}
|
|
||||||
SERVICE_NAME=${{ env.SERVICE_NAME }}
|
|
43
.github/workflows/build-image.yaml
vendored
43
.github/workflows/build-image.yaml
vendored
@ -1,43 +0,0 @@
|
|||||||
name: Build Docker image
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches: ["*"]
|
|
||||||
|
|
||||||
env:
|
|
||||||
REGISTRY: ghcr.io
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Construct tags / labels for an image
|
|
||||||
id: meta
|
|
||||||
uses: docker/metadata-action@v3
|
|
||||||
with:
|
|
||||||
images: |
|
|
||||||
${{ env.REGISTRY }}/${{ github.repository }}
|
|
||||||
tags: |
|
|
||||||
type=sha
|
|
||||||
|
|
||||||
# https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#setting-an-environment-variable
|
|
||||||
- name: Update environment variables
|
|
||||||
run: grep -v '^#' .env >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Setup Buildx
|
|
||||||
uses: docker/setup-buildx-action@v1
|
|
||||||
|
|
||||||
- name: Build Docker image
|
|
||||||
uses: docker/build-push-action@v2
|
|
||||||
with:
|
|
||||||
push: false
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
cache-from: type=gha
|
|
||||||
cache-to: type=gha,mode=max
|
|
||||||
build-args: |
|
|
||||||
OTP_VERSION=${{ env.OTP_VERSION }}
|
|
||||||
THRIFT_VERSION=${{ env.THRIFT_VERSION }}
|
|
||||||
SERVICE_NAME=${{ env.SERVICE_NAME }}
|
|
21
.github/workflows/build-image.yml
vendored
Normal file
21
.github/workflows/build-image.yml
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
name: Build and publish Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
- 'epic/**'
|
||||||
|
pull_request:
|
||||||
|
branches: ['**']
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY: ghcr.io
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-push:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: valitydev/action-deploy-docker@v2
|
||||||
|
with:
|
||||||
|
registry-username: ${{ github.actor }}
|
||||||
|
registry-access-token: ${{ secrets.GITHUB_TOKEN }}
|
2
.github/workflows/erlang-checks.yaml
vendored
2
.github/workflows/erlang-checks.yaml
vendored
@ -6,7 +6,7 @@ on:
|
|||||||
- 'master'
|
- 'master'
|
||||||
- 'epic/**'
|
- 'epic/**'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ '**' ]
|
branches: ['**']
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
setup:
|
setup:
|
||||||
|
14
Dockerfile
14
Dockerfile
@ -2,10 +2,10 @@ ARG OTP_VERSION
|
|||||||
|
|
||||||
# Build the release
|
# Build the release
|
||||||
FROM docker.io/library/erlang:${OTP_VERSION} AS builder
|
FROM docker.io/library/erlang:${OTP_VERSION} AS builder
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
# Install thrift compiler
|
# Install thrift compiler
|
||||||
ARG THRIFT_VERSION
|
ARG THRIFT_VERSION
|
||||||
|
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
RUN wget -q -O- "https://github.com/valitydev/thrift/releases/download/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}-linux-${TARGETARCH}.tar.gz" \
|
RUN wget -q -O- "https://github.com/valitydev/thrift/releases/download/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}-linux-${TARGETARCH}.tar.gz" \
|
||||||
| tar -xvz -C /usr/local/bin/
|
| tar -xvz -C /usr/local/bin/
|
||||||
@ -16,8 +16,8 @@ COPY . /build/
|
|||||||
|
|
||||||
# Build the release
|
# Build the release
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
RUN rebar3 compile
|
RUN rebar3 compile && \
|
||||||
RUN rebar3 as prod release
|
rebar3 as prod release
|
||||||
|
|
||||||
# Make a runner image
|
# Make a runner image
|
||||||
FROM docker.io/library/erlang:${OTP_VERSION}-slim
|
FROM docker.io/library/erlang:${OTP_VERSION}-slim
|
||||||
@ -28,15 +28,15 @@ ARG SERVICE_NAME
|
|||||||
ENV CHARSET=UTF-8
|
ENV CHARSET=UTF-8
|
||||||
ENV LANG=C.UTF-8
|
ENV LANG=C.UTF-8
|
||||||
|
|
||||||
# Expose SERVICE_NAME as env so CMD expands properly on start
|
|
||||||
ENV SERVICE_NAME=${SERVICE_NAME}
|
|
||||||
|
|
||||||
# Set runtime
|
# Set runtime
|
||||||
WORKDIR /opt/${SERVICE_NAME}
|
WORKDIR /opt/${SERVICE_NAME}
|
||||||
|
|
||||||
COPY --from=builder /build/_build/prod/rel/${SERVICE_NAME} /opt/${SERVICE_NAME}
|
COPY --from=builder /build/_build/prod/rel/${SERVICE_NAME} /opt/${SERVICE_NAME}
|
||||||
|
|
||||||
|
RUN echo "#!/bin/sh" >> /entrypoint.sh && \
|
||||||
|
echo "exec /opt/${SERVICE_NAME}/bin/${SERVICE_NAME} foreground" >> /entrypoint.sh && \
|
||||||
|
chmod +x /entrypoint.sh
|
||||||
ENTRYPOINT []
|
ENTRYPOINT []
|
||||||
CMD /opt/${SERVICE_NAME}/bin/${SERVICE_NAME} foreground
|
CMD ["/entrypoint.sh"]
|
||||||
|
|
||||||
EXPOSE 8022
|
EXPOSE 8022
|
||||||
|
@ -1,13 +1,17 @@
|
|||||||
ARG OTP_VERSION
|
ARG OTP_VERSION
|
||||||
|
|
||||||
FROM docker.io/library/erlang:${OTP_VERSION}
|
FROM docker.io/library/erlang:${OTP_VERSION}
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
# Install thrift compiler
|
||||||
ARG THRIFT_VERSION
|
ARG THRIFT_VERSION
|
||||||
ARG BUILDARCH
|
ARG TARGETARCH
|
||||||
|
RUN wget -q -O- "https://github.com/valitydev/thrift/releases/download/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}-linux-${TARGETARCH}.tar.gz" \
|
||||||
RUN wget -q -O- "https://github.com/valitydev/thrift/releases/download/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}-linux-${BUILDARCH}.tar.gz" \
|
|
||||||
| tar -xvz -C /usr/local/bin/
|
| tar -xvz -C /usr/local/bin/
|
||||||
|
|
||||||
|
# Set env
|
||||||
ENV CHARSET=UTF-8
|
ENV CHARSET=UTF-8
|
||||||
ENV LANG=C.UTF-8
|
ENV LANG=C.UTF-8
|
||||||
CMD /bin/bash
|
|
||||||
|
# Set runtime
|
||||||
|
CMD ["/bin/bash"]
|
||||||
|
Loading…
Reference in New Issue
Block a user