| # |
| # Licensed 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. |
| # |
| ARG GO_VERSION |
| FROM alpine:latest AS certbuilder |
| RUN apk add --no-cache openssl |
| RUN openssl genrsa -passout pass:x -out server.pass.key 2048 && \ |
| openssl rsa -passin pass:x -in server.pass.key -out server.key && \ |
| rm server.pass.key && \ |
| openssl req -new -key server.key -out server.csr \ |
| -subj "/C=US/ST=CO/L=Denver/O=Apache/OU=Traffic Control/CN=trafficops.dev.ciab.test" && \ |
| openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt && \ |
| openssl rand 32 | base64 > /aes.key |
| |
| FROM golang:${GO_VERSION}-alpine AS trafficops-dev |
| |
| ENV TC="/root/go/src/github.com/apache/trafficcontrol/" GOFLAGS="--buildvcs=false" |
| VOLUME /root/go/src/github.com/apache/trafficcontrol |
| ENV ADMIN="$TC/traffic_ops/app/db/admin" |
| EXPOSE 443 6444 |
| |
| COPY --from=certbuilder /server.key /server.crt /aes.key / |
| RUN apk add --no-cache make inotify-tools postgresql-client gcc libc-dev && \ |
| go install github.com/go-delve/delve/cmd/dlv@latest && \ |
| ln -s /root/go/bin/dlv /usr/bin/dlv |
| RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 |
| |
| COPY .pgpass /root/.pgpass |
| RUN chmod 0600 /root/.pgpass |
| |
| CMD /root/go/src/github.com/apache/trafficcontrol/dev/traffic_ops/run.sh |