|
99 | 99 | ENV AIRBYTE_ENTRYPOINT="python ./main.py" |
100 | 100 | ENTRYPOINT ["python", "./main.py"] |
101 | 101 | """ |
| 102 | + |
| 103 | +######################### |
| 104 | +# JAVA CONNECTOR IMAGE ## |
| 105 | +######################### |
| 106 | + |
| 107 | +JAVA_CONNECTOR_DOCKERFILE_TEMPLATE = """ |
| 108 | +# Java connector Dockerfile for Airbyte |
| 109 | +# This Dockerfile replicates the dagger-based build process for Java connectors |
| 110 | +
|
| 111 | +# Build arguments |
| 112 | +ARG JDK_VERSION=21-al2023 |
| 113 | +
|
| 114 | +# Base image - using Amazon Corretto (Amazon's distribution of OpenJDK) |
| 115 | +FROM amazoncorretto:${JDK_VERSION} |
| 116 | +ARG CONNECTOR_KEBAB_NAME |
| 117 | +
|
| 118 | +# Install required packages and set up the non-root user |
| 119 | +RUN set -o xtrace && \ |
| 120 | + yum install -y shadow-utils tar openssl findutils && \ |
| 121 | + yum update -y --security && \ |
| 122 | + yum clean all && \ |
| 123 | + rm -rf /var/cache/yum && \ |
| 124 | + echo "Creating airbyte user and group..." && \ |
| 125 | + groupadd --gid 1000 airbyte && \ |
| 126 | + useradd --uid 1000 --gid airbyte --shell /bin/bash --create-home airbyte && \ |
| 127 | + echo "Creating directories..." && \ |
| 128 | + mkdir /secrets && \ |
| 129 | + mkdir /config && \ |
| 130 | + mkdir --mode 755 /airbyte && \ |
| 131 | + mkdir --mode 755 /custom_cache && \ |
| 132 | + echo "Setting permissions..." && \ |
| 133 | + chown -R airbyte:airbyte /airbyte && \ |
| 134 | + chown -R airbyte:airbyte /custom_cache && \ |
| 135 | + chown -R airbyte:airbyte /secrets && \ |
| 136 | + chown -R airbyte:airbyte /config && \ |
| 137 | + chown -R airbyte:airbyte /usr/share/pki/ca-trust-source && \ |
| 138 | + chown -R airbyte:airbyte /etc/pki/ca-trust && \ |
| 139 | + chown -R airbyte:airbyte /tmp |
| 140 | +
|
| 141 | +# Download required scripts |
| 142 | +WORKDIR /airbyte |
| 143 | +ADD https://raw.githubusercontent.com/airbytehq/airbyte/6d8a3a2bc4f4ca79f10164447a90fdce5c9ad6f9/airbyte-integrations/bases/base/base.sh /airbyte/base.sh |
| 144 | +ADD https://raw.githubusercontent.com/airbytehq/airbyte/6d8a3a2bc4f4ca79f10164447a90fdce5c9ad6f9/airbyte-integrations/bases/base-java/javabase.sh /airbyte/javabase.sh |
| 145 | +ADD https://dtdg.co/latest-java-tracer /airbyte/dd-java-agent.jar |
| 146 | +
|
| 147 | +# Set permissions for downloaded files |
| 148 | +RUN chmod +x /airbyte/base.sh /airbyte/javabase.sh && \ |
| 149 | + chown airbyte:airbyte /airbyte/base.sh /airbyte/javabase.sh /airbyte/dd-java-agent.jar |
| 150 | +
|
| 151 | +# Set environment variables |
| 152 | +ENV AIRBYTE_SPEC_CMD="/airbyte/javabase.sh --spec" |
| 153 | +ENV AIRBYTE_CHECK_CMD="/airbyte/javabase.sh --check" |
| 154 | +ENV AIRBYTE_DISCOVER_CMD="/airbyte/javabase.sh --discover" |
| 155 | +ENV AIRBYTE_READ_CMD="/airbyte/javabase.sh --read" |
| 156 | +ENV AIRBYTE_WRITE_CMD="/airbyte/javabase.sh --write" |
| 157 | +ENV AIRBYTE_ENTRYPOINT="/airbyte/base.sh" |
| 158 | +ENV APPLICATION="${CONNECTOR_KEBAB_NAME}" |
| 159 | +
|
| 160 | +# Add the connector TAR file and extract it |
| 161 | +COPY airbyte-integrations/connectors/${CONNECTOR_KEBAB_NAME}/build/distributions/${CONNECTOR_KEBAB_NAME}.tar /tmp/${CONNECTOR_KEBAB_NAME}.tar |
| 162 | +RUN tar xf /tmp/${CONNECTOR_KEBAB_NAME}.tar --strip-components=1 -C /airbyte && \ |
| 163 | + rm -rf /tmp/${CONNECTOR_KEBAB_NAME}.tar && \ |
| 164 | + chown -R airbyte:airbyte /airbyte |
| 165 | +
|
| 166 | +# Set the non-root user |
| 167 | +USER airbyte |
| 168 | +
|
| 169 | +# Set entrypoint |
| 170 | +ENTRYPOINT ["/airbyte/base.sh"] |
| 171 | +
|
| 172 | +# Add labels |
| 173 | +LABEL io.airbyte.version="0.1.0" |
| 174 | +LABEL io.airbyte.name="airbyte/${CONNECTOR_KEBAB_NAME}" |
| 175 | +""" |
0 commit comments