I have a Phoenix app that I am deploy to Kuberenetes. My deploy script was working fine then all of a sudden it started erroring out asking for python. I tried adding adp add python
but that did not help. I am using bitwalker/alpine-elixir:latest and bitwalker/alpine-erlang-base:latest. My error is $ apk add --update make ca-certificates openssl python fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz ERROR: unsatisfiable constraints: python (missing): required by: world[python] ERROR: Job failed: exit code 1
My gitlab-ci.yaml file looks like this
stages:
- assets
- build
- deploy
assets:
image: node:11
stage: assets
script:
- cd assets
- npm install
- npm run elm-package-install
- npm run deploy
cache:
key: "$CI_COMMIT_REF_SLUG"
paths:
- assets/node_modules/
- assets/elm-stuff/
artifacts:
paths:
- priv/static/
# Build the app
build:
image: bitwalker/alpine-elixir:latest
stage: build
script:
# Add required build dependencies
- apk update
- apk upgrade
- apk add build-base
# First thing, let's check code formatting
- mix format --check-formatted
# Install Dependencies
- mix deps.get
# Run tests
# - mix test
# Build Assets
- MIX_ENV=prod mix compile
- MIX_ENV=prod mix phx.digest
# Build release
- MIX_ENV=prod mix distillery.release --env=prod
# Store Release
- export RELEASE_DIR=`ls -d _build/prod/rel/order_management_portal/releases/*/`
- mv $RELEASE_DIR/order_management_portal.tar.gz order_management_portal.tar.gz
cache:
key: "$CI_COMMIT_REF_SLUG"
paths:
- deps
- _build/test
- _build/prod
artifacts:
paths:
- order_management_portal.tar.gz
# DEPLOY THE APP WITH DOCKER
deploy:
stage: deploy
only:
- dev
- stage
- master
dependencies:
- build
image: docker:latest
variables:
DOCKER_DRIVER: overlay2
IMAGE_NAME: order-management
GCP_PROJECT_ID: beswick-engineering
services:
- docker:dind
script:
# Create our image.
# Unzip application tarball
- mkdir export
- tar -xf "order_management_portal.tar.gz" -C export
# Build docker image
- docker build -t $IMAGE_NAME:$CI_COMMIT_REF_SLUG .
# Install CA certs, openssl to https downloads, python for gcloud sdk
- apk add --update make ca-certificates openssl python
- update-ca-certificates
# Write our GCP service account private key into a file
- echo $GCLOUD_SERVICE_KEY | base64 -d > ${HOME}/gcloud-service-key.json
# Download and install Google Cloud SDK
- wget https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz
- tar zxf google-cloud-sdk.tar.gz && ./google-cloud-sdk/install.sh --usage-reporting=false --path-update=true
- google-cloud-sdk/bin/gcloud --quiet components update
- google-cloud-sdk/bin/gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
# Push to registry
# Tag our image for container registry
- docker tag $IMAGE_NAME:$CI_COMMIT_REF_SLUG gcr.io/$GCP_PROJECT_ID/$IMAGE_NAME:$CI_COMMIT_REF_SLUG
# Push to repository
- google-cloud-sdk/bin/gcloud docker -- push gcr.io/$GCP_PROJECT_ID/$IMAGE_NAME:$CI_COMMIT_REF_SLUG
# Deploy only for master branch
- |
if [ "$CI_COMMIT_REF_SLUG" = "dev" ]; then
# Configure Kube control
google-cloud-sdk/bin/gcloud components install kubectl
google-cloud-sdk/bin/gcloud container clusters get-credentials beswick --zone us-central1-a --project $GCP_PROJECT_ID
google-cloud-sdk/bin/kubectl patch deployment order-manager-dev -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
else if [ "$CI_COMMIT_REF_SLUG" = "master" ]; then
# Configure Kube control
google-cloud-sdk/bin/gcloud components install kubectl
google-cloud-sdk/bin/gcloud container clusters get-credentials beswick --zone us-central1-a --project $GCP_PROJECT_ID
google-cloud-sdk/bin/kubectl patch deployment order-manager-prod -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
fi
fi
and my dockerfile looks like this
#================
#Deployment Stage
#================
FROM bitwalker/alpine-erlang-base:latest
# RUN add erlang-cryto
#Set environment variables and expose port
EXPOSE 4000
ENV REPLACE_OS_VARS=true
ENV PORT=4000
COPY export/ .
CMD ["/opt/app/bin/order_management_portal", "foreground"]
Any help would be greatly appreciated!