# 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.

FROM openjdk:8

WORKDIR /usr/local/skywalking-nginx-lua

COPY run.sh /
RUN chmod +x /run.sh

COPY skywalking-validator.jar ./agent-test-tools/skywalking-validator-tool.jar
ADD skywalking-mock-collector.tar.gz agent-test-tools/
RUN chmod +x ./agent-test-tools/skywalking-mock-collector/bin/collector-startup.sh

CMD ["./agent-test-tools/skywalking-mock-collector/bin/collector-startup.sh"]