61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# Build container
 | 
						|
# =================================
 | 
						|
FROM python:3.11 AS build
 | 
						|
 | 
						|
RUN python -m pip install pip --upgrade
 | 
						|
RUN curl -sSL -o /install-poetry.py https://install.python-poetry.org
 | 
						|
RUN python /install-poetry.py --yes
 | 
						|
 | 
						|
ADD . /build
 | 
						|
WORKDIR /build
 | 
						|
 | 
						|
RUN /root/.local/bin/poetry self add poetry-plugin-export
 | 
						|
RUN /root/.local/bin/poetry export \
 | 
						|
  --format requirements.txt \
 | 
						|
  --output /build/requirements.txt \
 | 
						|
  --without-hashes
 | 
						|
RUN python -m pip wheel \
 | 
						|
  --wheel-dir /build/wheels \
 | 
						|
  --requirement /build/requirements.txt \
 | 
						|
  --disable-pip-version-check \
 | 
						|
  --no-cache-dir
 | 
						|
 | 
						|
 | 
						|
# Runtime container
 | 
						|
# ==================================
 | 
						|
FROM python:3.11-slim
 | 
						|
 | 
						|
ARG OPENTOFU_VERSION
 | 
						|
ARG SEMAPHORE_VERSION
 | 
						|
 | 
						|
COPY --from=build /build/wheels /tmp/wheels
 | 
						|
 | 
						|
RUN apt-get update --yes && \
 | 
						|
  apt-get install --yes \
 | 
						|
    openssh-client \
 | 
						|
    apt-transport-https \
 | 
						|
    ca-certificates \
 | 
						|
    curl \
 | 
						|
    gnupg && \
 | 
						|
  mkdir --parents /tmp/apt && \
 | 
						|
  curl -sSL -o /tmp/apt/opentofu.deb https://github.com/opentofu/opentofu/releases/download/v${OPENTOFU_VERSION}/tofu_${OPENTOFU_VERSION}_amd64.deb && \
 | 
						|
  curl -sSL -o /tmp/apt/semaphore.deb https://github.com/ansible-semaphore/semaphore/releases/download/v${SEMAPHORE_VERSION}/semaphore_${SEMAPHORE_VERSION}_linux_amd64.deb && \
 | 
						|
  apt-get install --yes /tmp/apt/*.deb && \
 | 
						|
  apt-get clean --yes && \
 | 
						|
  rm -rf /tmp/apt && \
 | 
						|
  python -m pip install /tmp/wheels/*.whl \
 | 
						|
    --upgrade \
 | 
						|
    --pre \
 | 
						|
    --no-index \
 | 
						|
    --no-cache-dir \
 | 
						|
    --find-links /tmp/wheels \
 | 
						|
    --disable-pip-version-check && \
 | 
						|
  rm -rf /tmp/wheels
 | 
						|
 | 
						|
ADD entrypoint.sh /entrypoint.sh
 | 
						|
ADD configure.py /configure.py
 | 
						|
 | 
						|
VOLUME /semaphore
 | 
						|
 | 
						|
ENTRYPOINT ["/entrypoint.sh"]
 |