Merge branch 'docker-registry' into 'master'
Use docker registry and CI See merge request packmate/Packmate!14
This commit is contained in:
24
.gitlab-ci.yml
Normal file
24
.gitlab-ci.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
docker-build:
|
||||||
|
image: docker:latest
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
GIT_SUBMODULE_STRATEGY: normal
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
before_script:
|
||||||
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
||||||
|
script:
|
||||||
|
- touch .env
|
||||||
|
- |
|
||||||
|
if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then # master
|
||||||
|
export BUILD_TAG=latest
|
||||||
|
echo "Running on default branch '$CI_DEFAULT_BRANCH'"
|
||||||
|
else # tag
|
||||||
|
export BUILD_TAG="$CI_COMMIT_TAG"
|
||||||
|
echo "Running on tag = $BUILD_TAG"
|
||||||
|
fi
|
||||||
|
- docker compose build
|
||||||
|
- docker compose push
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- tags
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
version: "3.4"
|
|
||||||
services:
|
services:
|
||||||
packmate:
|
packmate: # port = 65000
|
||||||
environment:
|
environment:
|
||||||
DB_USER: ${PACKMATE_DB_USER:-packmate}
|
|
||||||
DB_PASSWORD: ${PACKMATE_DB_PASSWORD:-K604YnL3G1hp2RDkCZNjGpxbyNpNHTRb}
|
DB_PASSWORD: ${PACKMATE_DB_PASSWORD:-K604YnL3G1hp2RDkCZNjGpxbyNpNHTRb}
|
||||||
DB_NAME: ${PACKMATE_DB_NAME:-packmate}
|
DB_NAME: ${PACKMATE_DB_NAME:-packmate}
|
||||||
INTERFACE: ${PACKMATE_INTERFACE:-}
|
INTERFACE: ${PACKMATE_INTERFACE:-}
|
||||||
@@ -21,11 +19,11 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
dockerfile: docker/Dockerfile_app
|
dockerfile: docker/Dockerfile_app
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
image: packmate-app:v1
|
image: registry.gitlab.com/packmate/packmate:${BUILD_TAG:-latest}
|
||||||
command: [
|
command: [
|
||||||
"java", "-Djava.net.preferIPv4Stack=true", "-Djava.net.preferIPv4Addresses=true",
|
"java", "-Djava.net.preferIPv4Stack=true", "-Djava.net.preferIPv4Addresses=true",
|
||||||
"-jar", "/app/app.jar", "--spring.datasource.url=jdbc:postgresql://127.0.0.1:65001/$${DB_NAME}",
|
"-jar", "/app/app.jar", "--spring.datasource.url=jdbc:postgresql://127.0.0.1:65001/$${DB_NAME}",
|
||||||
"--spring.datasource.username=$${DB_USER}", "--spring.datasource.password=$${DB_PASSWORD}",
|
"--spring.datasource.password=$${DB_PASSWORD}",
|
||||||
"--capture-mode=$${MODE}", "--pcap-file=$${PCAP_FILE}",
|
"--capture-mode=$${MODE}", "--pcap-file=$${PCAP_FILE}",
|
||||||
"--interface-name=$${INTERFACE}", "--local-ip=$${LOCAL_IP}", "--account-login=$${WEB_LOGIN}",
|
"--interface-name=$${INTERFACE}", "--local-ip=$${LOCAL_IP}", "--account-login=$${WEB_LOGIN}",
|
||||||
"--old-streams-cleanup-enabled=$${OLD_STREAMS_CLEANUP_ENABLED}", "--cleanup-interval=$${OLD_STREAMS_CLEANUP_INTERVAL}",
|
"--old-streams-cleanup-enabled=$${OLD_STREAMS_CLEANUP_ENABLED}", "--cleanup-interval=$${OLD_STREAMS_CLEANUP_INTERVAL}",
|
||||||
@@ -33,19 +31,24 @@ services:
|
|||||||
"--account-password=$${WEB_PASSWORD}", "--server.port=65000", "--server.address=0.0.0.0"
|
"--account-password=$${WEB_PASSWORD}", "--server.port=65000", "--server.address=0.0.0.0"
|
||||||
]
|
]
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
db:
|
||||||
db:
|
condition: service_healthy
|
||||||
|
db: # port = 65001
|
||||||
container_name: packmate-db
|
container_name: packmate-db
|
||||||
build:
|
environment:
|
||||||
context: .
|
POSTGRES_USER: packmate
|
||||||
dockerfile: docker/Dockerfile_db
|
POSTGRES_PASSWORD: ${PACKMATE_DB_PASSWORD:-K604YnL3G1hp2RDkCZNjGpxbyNpNHTRb}
|
||||||
args:
|
POSTGRES_DB: ${PACKMATE_DB_NAME:-packmate}
|
||||||
POSTGRES_USER: ${PACKMATE_DB_USER:-packmate}
|
|
||||||
POSTGRES_PASSWORD: ${PACKMATE_DB_PASSWORD:-K604YnL3G1hp2RDkCZNjGpxbyNpNHTRb}
|
|
||||||
POSTGRES_DB: ${PACKMATE_DB_NAME:-packmate}
|
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
volumes:
|
volumes:
|
||||||
- "./data/postgres_data:/var/lib/postgresql/data"
|
- "./data/postgres_data:/var/lib/postgresql/data"
|
||||||
|
- "./docker/postgresql.conf:/tmp/postgresql.conf:ro"
|
||||||
|
- "./docker/update_db_config.sh:/docker-entrypoint-initdb.d/_update_db_config.sh:ro"
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
image: packmate-db:v1
|
image: postgres:15.2
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD-SHELL", "pg_isready -U packmate -p 65001" ]
|
||||||
|
interval: 2s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 15
|
||||||
@@ -7,10 +7,10 @@ FROM eclipse-temurin:17-jdk
|
|||||||
WORKDIR /tmp/compile/
|
WORKDIR /tmp/compile/
|
||||||
COPY ./ .
|
COPY ./ .
|
||||||
COPY --from=0 /tmp/build/dist/ ./src/main/resources/static/
|
COPY --from=0 /tmp/build/dist/ ./src/main/resources/static/
|
||||||
RUN ./gradlew --no-daemon build -x test
|
RUN ./gradlew --no-daemon bootJar
|
||||||
|
|
||||||
FROM eclipse-temurin:17-jre
|
FROM eclipse-temurin:17-jre
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN apt update && apt install -y libpcap0.8
|
RUN apt update && apt install -y libpcap0.8 && rm -rf /var/lib/apt/lists/*
|
||||||
COPY --from=1 /tmp/compile/build/libs/packmate-*-SNAPSHOT.jar app.jar
|
COPY --from=1 /tmp/compile/build/libs/packmate-*-SNAPSHOT.jar app.jar
|
||||||
EXPOSE 65000
|
EXPOSE 65000
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
FROM postgres:15.1
|
|
||||||
|
|
||||||
ARG POSTGRES_USER
|
|
||||||
ARG POSTGRES_PASSWORD
|
|
||||||
ARG POSTGRES_DB
|
|
||||||
|
|
||||||
ENV POSTGRES_USER ${POSTGRES_USER}
|
|
||||||
ENV POSTGRES_PASSWORD ${POSTGRES_PASSWORD}
|
|
||||||
ENV POSTGRES_DB ${POSTGRES_DB}
|
|
||||||
|
|
||||||
COPY docker/postgresql.conf /tmp/postgresql.conf
|
|
||||||
COPY docker/update_db_config.sh /docker-entrypoint-initdb.d/_update_db_config.sh
|
|
||||||
|
|
||||||
EXPOSE 65001
|
|
||||||
Reference in New Issue
Block a user