Fix works on my machine issue

* Build images inside of docker to eliminate possibility of libc clashes
  rather than building locally and adding to container.
* Fix image pull policy for swagger
* Make dependencies more explicit
* Add some `AllowParallel` directives in Tilt
This commit is contained in:
2022-09-19 11:45:21 -03:00
parent 537cd16c66
commit b4e1342879
5 changed files with 87 additions and 45 deletions

View File

@@ -1,12 +1,12 @@
FROM rust
FROM rust:1.63-slim-bullseye
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y \
iputils-ping \
libpq-dev
RUN cd /tmp \
&& wget http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.34-0experimental4_amd64.deb \
&& dpkg -i libc6_2.34-0experimental4_amd64.deb \
&& rm libc6_2.34-0experimental4_amd64.deb
#RUN cd /tmp \
# && wget http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.36-0experimental4_amd64.deb \
# && dpkg -i libc6_2.34-0experimental4_amd64.deb \
# && rm libc6_2.34-0experimental4_amd64.deb
ARG binary_location
ARG binary_name
COPY $binary_location /bin/$binary_name

View File

@@ -3,9 +3,15 @@
# ----------------------------------------
# Build all crates in release mode
# ----------------------------------------
cargo-build:
release:
cargo build --release
# ----------------------------------------
# Build all crates in release mode
# ----------------------------------------
debug:
cargo build
# ----------------------------------------
# # Set Git Config for Git Hooks
# ----------------------------------------

103
Tiltfile
View File

@@ -1,15 +1,29 @@
# Tiltfile
update_settings(max_parallel_updates=8)
###################################################################################################
#
###################################################################################################
#local_resource(
# 'cargo-build',
# 'make cargo-build',
# labels=['Build']
#)
local_resource(
'cargo-build',
'make cargo-build',
'make-builder',
'docker build -f dockerfiles/Build . -t rustbuilder',
labels=['Build']
)
local_resource(
'docker-build',
'docker run -u $(id -u ${USER}):$(id -g ${USER}) --mount=target=/app,type=bind,source=$PWD rustbuilder',
labels=['Build'],
allow_parallel = True
)
###################################################################################################
#
###################################################################################################
@@ -23,6 +37,7 @@ local_resource(
&& for d in helm/*; do [[ -f "$d"/Chart.yaml ]] && helm dependency update $d; done',
#auto_init=False,
#trigger_mode=TRIGGER_MODE_MANUAL,
allow_parallel = True,
labels=['Build']
)
@@ -32,12 +47,14 @@ local_resource(
local_resource(
'pack-api-gateway',
'eval $(minikube docker-env) \
&& docker build -t api-gateway --build-arg binary_location=target/release/api-gateway --build-arg binary_name=api-gateway .',
'docker build -t api-gateway --build-arg binary_location=target/docker/debug/api-gateway --build-arg binary_name=api-gateway . \
&& minikube image load api-gateway',
resource_deps=[
'cargo-build'
'docker-build'
],
labels=['Build']
deps=['target/docker/debug/api-gateway'],
labels=['Build'],
allow_parallel = True
)
k8s_yaml(helm('./helm/api-gateway'))
k8s_resource(
@@ -58,12 +75,14 @@ k8s_resource(
local_resource(
'pack-user-service',
'eval $(minikube docker-env) \
&& docker build -t user-service --build-arg binary_location=target/release/user-service --build-arg binary_name=user-service .',
'docker build -t user-service --build-arg binary_location=target/docker/debug/user-service --build-arg binary_name=user-service . \
&& minikube image load user-service',
resource_deps=[
'cargo-build'
'docker-build'
],
labels=['Build']
deps=['target/docker/debug/user-service'],
labels=['Build'],
allow_parallel = True
)
k8s_yaml(helm('./helm/user-service'))
k8s_resource(
@@ -81,12 +100,14 @@ k8s_resource(
local_resource(
'pack-consumer',
'eval $(minikube docker-env) \
&& docker build -t consumer --build-arg binary_location=target/release/consumer --build-arg binary_name=consumer .',
'docker build -t consumer --build-arg binary_location=target/docker/debug/consumer --build-arg binary_name=consumer . \
&& minikube image load consumer',
resource_deps=[
'cargo-build'
'docker-build'
],
labels=['Build']
deps=['target/docker/debug/consumer'],
labels=['Build'],
allow_parallel = True
)
k8s_yaml(helm('./helm/consumer'))
k8s_resource(
@@ -94,6 +115,7 @@ k8s_resource(
resource_deps=[
'pack-consumer',
'update-helm',
'rabbitmq',
],
labels=['Core_Services']
)
@@ -104,12 +126,15 @@ k8s_resource(
local_resource(
'pack-producer',
'eval $(minikube docker-env) \
&& docker build -t producer --build-arg binary_location=target/release/producer --build-arg binary_name=producer .',
'docker build -t producer --build-arg binary_location=target/docker/debug/producer --build-arg binary_name=producer . \
&& minikube image load producer',
resource_deps=[
'cargo-build'
'docker-build',
'rabbitmq'
],
labels=['Build']
deps=['target/docker/debug/producer'],
labels=['Build'],
allow_parallel = True
)
k8s_yaml(helm('./helm/producer'))
k8s_resource(
@@ -117,6 +142,7 @@ k8s_resource(
resource_deps=[
'pack-producer',
'update-helm',
'rabbitmq',
],
labels=['Core_Services']
)
@@ -170,23 +196,23 @@ k8s_resource(
# Vault
###################################################################################################
k8s_yaml(helm(
'./helm/vault',
name='vault',
values=[
'helm/vault/values.yaml'
]
))
k8s_resource(
workload='vault',
resource_deps=[
'update-helm',
],
port_forwards=[
port_forward(8200, 8200, name='Vault Port'),
],
labels=['Vault']
)
#k8s_yaml(helm(
# './helm/vault',
# name='vault',
# values=[
# 'helm/vault/values.yaml'
# ]
#))
#k8s_resource(
# workload='vault',
# resource_deps=[
# 'update-helm',
# ],
# port_forwards=[
# port_forward(8200, 8200, name='Vault Port'),
# ],
# labels=['Vault']
#)
###################################################################################################
# Frontend
@@ -199,7 +225,8 @@ local_resource(
&& npm --prefix frontend run build \
&& eval $(minikube docker-env) \
&& docker build -f frontend/Dockerfile -t frontend:latest ./frontend',
labels=['Build']
labels=['Build'],
allow_parallel = True
)
k8s_yaml(helm(
'./helm/frontend',
@@ -239,7 +266,7 @@ k8s_yaml(helm(
name='swagger',
values=[
'helm/swagger/values.yaml'
]
],
))
k8s_resource(
workload='swagger',
@@ -249,7 +276,7 @@ k8s_resource(
resource_deps=[
'update-swagger-doc',
],
labels=['Docs']
labels=['Docs'],
)
###################################################################################################

9
dockerfiles/Build Normal file
View File

@@ -0,0 +1,9 @@
FROM rust:1.63-slim-bullseye
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y \
iputils-ping \
libpq-dev \
cmake
WORKDIR /app
RUN rustup component add rustfmt
CMD CARGO_TARGET_DIR=target/docker cargo build

View File

@@ -9,7 +9,7 @@ image:
#repository: 172.17.0.1:5000/api-gateway
repository: swaggerapi/swagger-ui
#pullPolicy: IfNotPresent
pullPolicy: Never
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: "latest"
#tag: ""