# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

############################################################
# Dockerfile to build Traffic Ops DB admin test environment
############################################################

FROM rockylinux:8
ARG POSTGRES_VERSION
ENV POSTGRES_VERSION=$POSTGRES_VERSION

# NOTE: temporary workaround for removal of golang packages from CentOS 7 base repo
RUN yum install -y \
	epel-release \
	libicu \
	"https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-$(rpm --eval %_arch)/pgdg-redhat-repo-latest.noarch.rpm" \
	git && \
	dnf -y --repo=pgdg13 install postgresql13 && \
	dnf -y remove pgdg-redhat-repo && \
	dnf -y --enablerepo=powertools install \
		cpanminus            \
		expat-devel          \
		golang               \
		libcap               \
		libcurl-devel        \
		libidn-devel         \
		libpcap-devel        \
		mkisofs              \
		openssl-devel        \
		perl-core            \
		perl-Crypt-ScryptKDF \
		perl-DBD-Pg          \
		perl-DBI             \
		perl-Digest-SHA1     \
		perl-JSON            \
		perl-libwww-perl     \
		perl-TermReadKey     \
		perl-Test-CPAN-Meta  \
		perl-WWW-Curl        \
		python3

# Override TRAFFIC_OPS_RPM arg to use a different one using --build-arg TRAFFIC_OPS_RPM=...  Can be local file or http://...
ARG TRAFFIC_OPS_RPM=traffic_ops.rpm
ADD $TRAFFIC_OPS_RPM /
RUN yum install -y \
        /$(basename $TRAFFIC_OPS_RPM) && \
        rm /$(basename $TRAFFIC_OPS_RPM) && \
    yum clean all

WORKDIR /opt/traffic_ops/app

ADD run-tvdb-test.sh \
    db-config.sh \
    reencrypt-config.sh \
    data/sslkey.dat \
    data/dnssec.dat \
    data/urisigningkey.dat \
    data/urlsigkey.dat \
    aes.key \
    new-aes.key \
    /

COPY initdb.d/ /db_dumps/

CMD /run-tvdb-test.sh
