-
Notifications
You must be signed in to change notification settings - Fork 234
/
Dockerfile
81 lines (65 loc) · 2.15 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Copyright (c) 2013-2024 Cinchapi Inc.
#
# 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.
FROM openjdk:8
MAINTAINER Cinchapi Inc. <opensource@cinchapi.com>
# Install depdenencies:
# - sudo because some of the Concourse scripts require it
# - ruby to generate CaSH docs
# - less to display CaSH docs
RUN apt-get update && \
apt-get -y --no-install-recommends install sudo && \
apt-get -y --no-install-recommends install ruby-full && \
apt-get -y --no-install-recommends install less && \
rm -rf /var/lib/apt/lists/*
# Copy the application source to the container
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
# Build the installer, if necessary
RUN if [ -f concourse-server/build/distributions/*.bin ]; then \
echo 'Installer already exists!'; \
else \
./gradlew installer; \
fi
# Copy the installer to the /opt directory
RUN \
mkdir -p /opt && \
cp concourse-server/build/distributions/*.bin /opt
WORKDIR /opt
# Remove source code
RUN rm -r /usr/src/app
# Install the app
RUN sh *bin
# Link log files
WORKDIR concourse-server
RUN \
ln -fsv /dev/stdout ./log/console.log && \
ln -fsv /dev/stdout ./log/debug.log && \
ln -fsv /dev/stderr ./log/error.log && \
ln -fsv /dev/stdout ./log/info.log && \
ln -fsv /dev/stderr ./log/warn.log
# Link the default data directory to the persistent volume
RUN ln -s /root/concourse /data
# Create a persistent volume for data
VOLUME [ "/data" ]
# Configuration
ENV CONCOURSE_BUFFER_DIRECTORY /data/buffer
ENV CONCOURSE_DATABASE_DIRECTORY /data/db
# Start the app
ENTRYPOINT [ "concourse"]
CMD ["console"]
# Expose the TCP and HTTP ports
EXPOSE 1717
EXPOSE 3434
EXPOSE 9010