Skip to content

Commit

Permalink
HIVE-27277: GH actions to build and push docker image
Browse files Browse the repository at this point in the history
Set up github actions workflow to build and push docker image to docker hub
  • Loading branch information
simhadri-g authored and SimhadriG committed Apr 27, 2023
1 parent 1f5fb1b commit 2c09d78
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 8 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/docker-GA-images.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Build and Publish docker images for Hive GA

on:
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build and push Hive 4.0.0-alpha-2
uses: docker/build-push-action@v4
with:
context: ./packaging/src/docker/
file: ./packaging/src/docker/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/hive:test-image
build-args:
|
HIVE_VERSION=4.0.0-alpha-2
HADOOP_VERSION=3.3.1
TEZ_VERSION=0.10.2
BUILD_ENV=deploy
-
name: Build and push Hive 4.0.0-alpha-1
uses: docker/build-push-action@v4
with:
context: ./packaging/src/docker/
file: ./packaging/src/docker/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/hive:4.0.0-alpha-1
build-args:
|
HIVE_VERSION=4.0.0-alpha-1
HADOOP_VERSION=3.1.0
TEZ_VERSION=0.10.1
BUILD_ENV=deploy
-
name: Build and push Hive 3.1.3
uses: docker/build-push-action@v4
with:
context: ./packaging/src/docker/
file: ./packaging/src/docker/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/hive:3.1.3
build-args:
|
HIVE_VERSION=3.1.3
HADOOP_VERSION=3.1.0
TEZ_VERSION=0.9.1
BUILD_ENV=deploy
32 changes: 25 additions & 7 deletions packaging/src/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
ARG BUILD_ENV

FROM ubuntu as unarchive
ONBUILD COPY hadoop-*.tar.gz /opt
ONBUILD COPY apache-hive-*-bin.tar.gz /opt
ONBUILD COPY apache-tez-*-bin.tar.gz /opt

FROM ubuntu as deploy
ARG HADOOP_VERSION
ARG HIVE_VERSION
ARG TEZ_VERSION
ONBUILD RUN apt-get update && apt-get -y install wget
ONBUILD RUN wget https://dlcdn.apache.org/tez/$TEZ_VERSION/apache-tez-$TEZ_VERSION-bin.tar.gz && \
wget https://archive.apache.org/dist/hadoop/core/hadoop-$HADOOP_VERSION/hadoop-$HADOOP_VERSION.tar.gz && \
wget https://dlcdn.apache.org/hive/hive-$HIVE_VERSION/apache-hive-$HIVE_VERSION-bin.tar.gz
ONBUILD RUN mv /apache-tez-$TEZ_VERSION-bin.tar.gz /opt && \
mv hadoop-$HADOOP_VERSION.tar.gz /opt && \
mv apache-hive-$HIVE_VERSION-bin.tar.gz /opt


FROM ${BUILD_ENV} as env
RUN echo ${BUILD_ENV}
ARG HADOOP_VERSION
ARG HIVE_VERSION
ARG TEZ_VERSION
COPY hadoop-$HADOOP_VERSION.tar.gz /opt
COPY apache-hive-$HIVE_VERSION-bin.tar.gz /opt
COPY apache-tez-$TEZ_VERSION-bin.tar.gz /opt

RUN tar -xzvf /opt/hadoop-$HADOOP_VERSION.tar.gz -C /opt/ && \
rm -rf /opt/hadoop-$HADOOP_VERSION/share/doc/* && \
Expand All @@ -35,9 +52,9 @@ FROM openjdk:8-jre-slim AS run
ARG HADOOP_VERSION
ARG HIVE_VERSION
ARG TEZ_VERSION
COPY --from=unarchive /opt/hadoop-$HADOOP_VERSION /opt/hadoop
COPY --from=unarchive /opt/apache-hive-$HIVE_VERSION-bin /opt/hive
COPY --from=unarchive /opt/apache-tez-$TEZ_VERSION-bin /opt/tez
COPY --from=env /opt/hadoop-$HADOOP_VERSION /opt/hadoop
COPY --from=env /opt/apache-hive-$HIVE_VERSION-bin /opt/hive
COPY --from=env /opt/apache-tez-$TEZ_VERSION-bin /opt/tez

# Install dependencies
RUN set -ex; \
Expand All @@ -48,7 +65,8 @@ RUN set -ex; \
# Set necessary environment variables.
ENV HADOOP_HOME=/opt/hadoop \
HIVE_HOME=/opt/hive \
TEZ_HOME=/opt/tez
TEZ_HOME=/opt/tez \
HIVE_VER=$HIVE_VERSION

ENV PATH=$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH

Expand Down
1 change: 1 addition & 0 deletions packaging/src/docker/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ docker build \
"$WORK_DIR" \
-f "$WORK_DIR/Dockerfile" \
-t "$repo/hive:$HIVE_VERSION" \
--build-arg "BUILD_ENV=unarchive"
--build-arg "HIVE_VERSION=$HIVE_VERSION" \
--build-arg "HADOOP_VERSION=$HADOOP_VERSION" \
--build-arg "TEZ_VERSION=$TEZ_VERSION" \
Expand Down
2 changes: 1 addition & 1 deletion packaging/src/docker/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ set -x
SKIP_SCHEMA_INIT="${IS_RESUME:-false}"

function initialize_hive {
$HIVE_HOME/bin/schematool -dbType $DB_DRIVER -initOrUpgradeSchema
$HIVE_HOME/bin/schematool -dbType $DB_DRIVER -initOrUpgradeSchema ${HIVE_VER}
if [ $? -eq 0 ]; then
echo "Initialized schema successfully.."
else
Expand Down

0 comments on commit 2c09d78

Please sign in to comment.