add doocker file
This commit is contained in:
parent
f0fe68d851
commit
e1533a5c23
2 changed files with 136 additions and 20 deletions
89
.github/workflows/release_checkin_consumer.yaml
vendored
Normal file
89
.github/workflows/release_checkin_consumer.yaml
vendored
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
name: release-dev
|
||||||
|
run-name: release-dev ${{ github.actor }}
|
||||||
|
on:
|
||||||
|
# push:
|
||||||
|
# tags:
|
||||||
|
# - 'v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
# tags-ignore:
|
||||||
|
# - '2.*'
|
||||||
|
# Allow run workflow manually from Action tab
|
||||||
|
workflow_dispatch:
|
||||||
|
env:
|
||||||
|
REGISTRY: docker.frappet.com
|
||||||
|
IMAGE_NAME: ehr/bma-ehr-checkin-consumer
|
||||||
|
DEPLOY_HOST: frappet.com
|
||||||
|
DEPLOY_PORT: 10102
|
||||||
|
# COMPOSE_PATH: /home/frappet/docker/bma-ehr
|
||||||
|
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-leave
|
||||||
|
TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# act workflow_dispatch -W .github/workflows/release_leave.yaml --input IMAGE_VER=leave-1.0.0 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
|
||||||
|
release-dev:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
# skip Set up QEMU because it fail on act and container
|
||||||
|
- name: Gen Version
|
||||||
|
id: gen_ver
|
||||||
|
run: |
|
||||||
|
if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
|
||||||
|
IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
|
||||||
|
else
|
||||||
|
IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
|
||||||
|
fi
|
||||||
|
if [[ $IMAGE_VER == '' ]]; then
|
||||||
|
IMAGE_VER='test-vBeta'
|
||||||
|
fi
|
||||||
|
echo '::set-output name=image_ver::'$IMAGE_VER
|
||||||
|
- name: Test Version
|
||||||
|
run: |
|
||||||
|
echo $GITHUB_REF
|
||||||
|
echo ${{ steps.gen_ver.outputs.image_ver }}
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
- name: Login in to registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ${{env.REGISTRY}}
|
||||||
|
username: ${{secrets.DOCKER_USER}}
|
||||||
|
password: ${{secrets.DOCKER_PASS}}
|
||||||
|
- name: Build and load local docker image
|
||||||
|
uses: docker/build-push-action@v3
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64
|
||||||
|
file: BMA.EHR.CheckInConsumer/Dockerfile
|
||||||
|
push: true
|
||||||
|
tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
|
||||||
|
|
||||||
|
- name: Reload docker compose
|
||||||
|
uses: appleboy/ssh-action@v0.1.8
|
||||||
|
with:
|
||||||
|
host: ${{env.DEPLOY_HOST}}
|
||||||
|
username: frappet
|
||||||
|
password: ${{ secrets.SSH_PASSWORD }}
|
||||||
|
port: ${{env.DEPLOY_PORT}}
|
||||||
|
script: |
|
||||||
|
cd "${{env.COMPOSE_PATH}}"
|
||||||
|
docker compose pull
|
||||||
|
docker compose up -d
|
||||||
|
echo "${{ steps.gen_ver.outputs.image_ver }}"> success
|
||||||
|
- uses: snow-actions/line-notify@v1.1.0
|
||||||
|
if: success()
|
||||||
|
with:
|
||||||
|
access_token: ${{ env.TOKEN_LINE }}
|
||||||
|
message: |
|
||||||
|
-Success✅✅✅
|
||||||
|
Image: ${{env.IMAGE_NAME}}
|
||||||
|
Version: ${{ github.event.inputs.IMAGE_VER }}
|
||||||
|
By: ${{secrets.DOCKER_USER}}
|
||||||
|
- uses: snow-actions/line-notify@v1.1.0
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
access_token: ${{ env.TOKEN_LINE }}
|
||||||
|
message: |
|
||||||
|
-Failure❌❌❌
|
||||||
|
Image: ${{env.IMAGE_NAME}}
|
||||||
|
Version: ${{ github.event.inputs.IMAGE_VER }}
|
||||||
|
By: ${{secrets.DOCKER_USER}}
|
||||||
|
|
@ -1,28 +1,55 @@
|
||||||
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
## See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||||
|
#
|
||||||
# This stage is used when running from VS in fast mode (Default for Debug configuration)
|
## This stage is used when running from VS in fast mode (Default for Debug configuration)
|
||||||
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
|
#FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
|
||||||
USER app
|
#USER app
|
||||||
WORKDIR /app
|
#WORKDIR /app
|
||||||
|
#
|
||||||
|
#
|
||||||
|
## This stage is used to build the service project
|
||||||
|
#FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||||
|
#ARG BUILD_CONFIGURATION=Release
|
||||||
|
#WORKDIR /src
|
||||||
|
#COPY ["./BMA.EHR.CheckInConsumer.csproj", "BMA.EHR.CheckInConsumer/"]
|
||||||
|
#RUN dotnet restore "BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj"
|
||||||
|
#COPY . .
|
||||||
|
#WORKDIR "/src/BMA.EHR.CheckInConsumer"
|
||||||
|
#RUN dotnet build "BMA.EHR.CheckInConsumer.csproj" -c $BUILD_CONFIGURATION -o /app/build
|
||||||
|
#
|
||||||
|
## This stage is used to publish the service project to be copied to the final stage
|
||||||
|
#FROM build AS publish
|
||||||
|
#ARG BUILD_CONFIGURATION=Release
|
||||||
|
#RUN dotnet publish "BMA.EHR.CheckInConsumer.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
|
||||||
|
#
|
||||||
|
## This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
|
||||||
|
#FROM base AS final
|
||||||
|
#WORKDIR /app
|
||||||
|
#COPY --from=publish /app/publish .
|
||||||
|
#ENTRYPOINT ["dotnet", "BMA.EHR.CheckInConsumer.dll"]
|
||||||
|
|
||||||
|
|
||||||
# This stage is used to build the service project
|
# ใช้ official .NET SDK image สำหรับการ build
|
||||||
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
||||||
ARG BUILD_CONFIGURATION=Release
|
|
||||||
|
# กำหนด working directory ภายใน container
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY ["BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj", "BMA.EHR.CheckInConsumer/"]
|
|
||||||
RUN dotnet restore "./BMA.EHR.CheckInConsumer/BMA.EHR.CheckInConsumer.csproj"
|
|
||||||
COPY . .
|
|
||||||
WORKDIR "/src/BMA.EHR.CheckInConsumer"
|
|
||||||
RUN dotnet build "./BMA.EHR.CheckInConsumer.csproj" -c $BUILD_CONFIGURATION -o /app/build
|
|
||||||
|
|
||||||
# This stage is used to publish the service project to be copied to the final stage
|
# คัดลอกไฟล์ .csproj และ restore dependencies
|
||||||
FROM build AS publish
|
COPY *.csproj ./
|
||||||
ARG BUILD_CONFIGURATION=Release
|
RUN dotnet restore
|
||||||
RUN dotnet publish "./BMA.EHR.CheckInConsumer.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
|
|
||||||
|
|
||||||
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
|
# คัดลอกไฟล์ทั้งหมดและ build
|
||||||
FROM base AS final
|
COPY . ./
|
||||||
|
RUN dotnet build -c Release -o /app/build
|
||||||
|
|
||||||
|
# ใช้ stage ใหม่สำหรับการ runtime
|
||||||
|
FROM mcr.microsoft.com/dotnet/runtime:8.0 AS runtime
|
||||||
|
|
||||||
|
# กำหนด working directory สำหรับ runtime
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=publish /app/publish .
|
|
||||||
|
# คัดลอกไฟล์จาก build stage มายัง runtime stage
|
||||||
|
COPY --from=build /app/build .
|
||||||
|
|
||||||
|
# ระบุ entry point ของแอปพลิเคชัน
|
||||||
ENTRYPOINT ["dotnet", "BMA.EHR.CheckInConsumer.dll"]
|
ENTRYPOINT ["dotnet", "BMA.EHR.CheckInConsumer.dll"]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue