mirror of
https://github.com/internetee/epp_proxy.git
synced 2025-08-14 11:43:45 +02:00
Containerize proxy (#51)
* Added dockerfile with all files and build pipeline * Trigger base image build on tool version change The release image from dockerfile should be builded when correct config files are present.
This commit is contained in:
parent
24b6c68682
commit
71a01d0606
3 changed files with 107 additions and 0 deletions
52
.github/workflows/build_base_image.yml
vendored
Normal file
52
.github/workflows/build_base_image.yml
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
name: build and push image
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- .tool-versions
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Get versions
|
||||
shell: python
|
||||
run: |
|
||||
import os
|
||||
versions = {}
|
||||
try:
|
||||
with open(".tool-versions", "r") as f:
|
||||
for line in f:
|
||||
(key, val) = line.split()
|
||||
versions[key] = val
|
||||
except:
|
||||
print("Something is off with getting the versions")
|
||||
tag = "internetee/erlang-ruby:" + versions["erlang"] + "-" + versions["ruby"]
|
||||
try:
|
||||
f = open("TAG", "x")
|
||||
f.write(tag)
|
||||
except:
|
||||
print("Something is not right with setting the tag")
|
||||
finally:
|
||||
f.close()
|
||||
|
||||
- name: Set image tag"
|
||||
run: |
|
||||
echo "TAG=`cat TAG`" >> $GITHUB_ENV
|
||||
|
||||
- name: Build image
|
||||
run: |
|
||||
docker build -t $TAG -f Dockerfile.Erlang-ruby.base .
|
||||
|
||||
- name: Push image to Docker hub
|
||||
env:
|
||||
D_HUB_PASS: ${{ secrets.D_HUB_PASS}}
|
||||
run: |
|
||||
echo $D_HUB_PASS | docker login -u eiskra --password-stdin
|
||||
docker push $TAG
|
42
Dockerfile.Erlang-ruby.base
Normal file
42
Dockerfile.Erlang-ruby.base
Normal file
|
@ -0,0 +1,42 @@
|
|||
FROM debian:buster-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
wget \
|
||||
git \
|
||||
build-essential=* \
|
||||
libncurses5-dev=* \
|
||||
automake=* \
|
||||
autoconf=* \
|
||||
curl=* \
|
||||
ca-certificates=* \
|
||||
libssl-dev=* \
|
||||
libreadline-dev=* \
|
||||
libdpkg-perl=* \
|
||||
liberror-perl=* \
|
||||
libc6=* \
|
||||
libc-dev \
|
||||
perl=* \
|
||||
procps=* \
|
||||
inotify-tools=* \
|
||||
libssl1.1=* \
|
||||
perl-base=* \
|
||||
zlib1g-dev \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN git clone https://github.com/asdf-vm/asdf.git "$HOME"/.asdf && \
|
||||
echo '. $HOME/.asdf/asdf.sh' >> "$HOME"/.bashrc && \
|
||||
echo '. $HOME/.asdf/asdf.sh' >> "$HOME"/.profile
|
||||
|
||||
ENV PATH="${PATH}:/root/.asdf/shims:/root/.asdf/bin"
|
||||
|
||||
RUN mkdir -p /opt/erlang/epp_proxy/release
|
||||
WORKDIR /opt/erlang/epp_proxy
|
||||
|
||||
COPY .tool-versions ./
|
||||
RUN asdf plugin-add erlang
|
||||
RUN asdf install
|
||||
RUN asdf global erlang $(grep erlang .tool-versions | cut -d' ' -f2)
|
||||
RUN asdf plugin-add ruby
|
||||
RUN asdf plugin-add rebar
|
||||
RUN asdf install
|
13
Dockerfile.release
Normal file
13
Dockerfile.release
Normal file
|
@ -0,0 +1,13 @@
|
|||
FROM internetee/erlang-ruby:21.3.8-2.6.3 AS build
|
||||
COPY . ./scr/
|
||||
|
||||
WORKDIR /opt/erlang/epp_proxy/scr
|
||||
|
||||
RUN rebar3 as prod release
|
||||
|
||||
FROM internetee/erlang-ruby:21.3.8-2.6.3
|
||||
LABEL org.opencontainers.image.source=https://github.com/internetee/epp_proxy
|
||||
|
||||
|
||||
COPY --from=build /opt/erlang/epp_proxy/scr/_build/prod/rel/epp_proxy ./release
|
||||
RUN ln -s /opt/erlang/epp_proxy/release/bin/epp_proxy ./epp_proxy
|
Loading…
Add table
Add a link
Reference in a new issue