Skip to content

Commit 9244573

Browse files
committed
Add Docker development environment
Include Dockerfile and docker-compose.yaml for consistent development setup with Ubuntu 22.04 and Oracle Free container for testing.
1 parent c51d958 commit 9244573

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

Dockerfile

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# IvorySQL Build and Test Container - Modern Ubuntu
2+
# Alternative to CentOS with same capabilities
3+
4+
FROM ubuntu:22.04
5+
6+
# Prevent interactive prompts
7+
ENV DEBIAN_FRONTEND=noninteractive
8+
9+
# Install build dependencies matching the workflow requirements
10+
RUN apt-get update && apt-get install -y \
11+
# Build tools
12+
build-essential git lcov bison flex pkg-config cppcheck \
13+
# Core dependencies
14+
libkrb5-dev libssl-dev libldap-dev libpam-dev \
15+
libxml2-dev libxslt-dev libreadline-dev libedit-dev \
16+
zlib1g-dev uuid-dev libossp-uuid-dev libuuid1 e2fsprogs \
17+
# ICU support
18+
libicu-dev \
19+
# Language support
20+
python3-dev tcl-dev libperl-dev gettext \
21+
# Perl test modules
22+
libipc-run-perl libtime-hires-perl libtest-simple-perl \
23+
# LLVM/Clang
24+
llvm clang \
25+
# LZ4 compression
26+
liblz4-dev \
27+
# System libraries
28+
libselinux1-dev libsystemd-dev \
29+
# GSSAPI
30+
libgssapi-krb5-2 \
31+
# Locale support
32+
locales \
33+
# For dev containers
34+
sudo tini \
35+
&& rm -rf /var/lib/apt/lists/*
36+
37+
# Set up locale
38+
RUN locale-gen en_US.UTF-8
39+
ENV LANG=en_US.UTF-8 \
40+
LANGUAGE=en_US:en \
41+
LC_ALL=en_US.UTF-8
42+
43+
# Create ivorysql user with matching host UID/GID (1000:1000)
44+
# and grant sudo privileges without password
45+
ARG USER_UID=1000
46+
ARG USER_GID=1000
47+
RUN groupadd -g ${USER_GID} ivorysql || true && \
48+
useradd -m -u ${USER_UID} -g ${USER_GID} -d /home/ivorysql -s /bin/bash ivorysql && \
49+
echo "ivorysql ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
50+
51+
# Set working directory
52+
WORKDIR /home/ivorysql/IvorySQL
53+
54+
# Switch to ivorysql user for builds
55+
USER ivorysql
56+
57+
# Default command
58+
ENTRYPOINT ["/usr/bin/tini", "--"]
59+
CMD ["/bin/bash"]

docker-compose.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
services:
2+
# Ubuntu-based development environment (recommended)
3+
dev:
4+
build:
5+
context: .
6+
dockerfile: Dockerfile
7+
image: ivorysql-dev
8+
container_name: ivorysql-dev
9+
volumes:
10+
- .:/home/ivorysql/IvorySQL:rw
11+
working_dir: /home/ivorysql/IvorySQL
12+
command: ["sleep", "infinity"]
13+
oracle:
14+
image: container-registry.oracle.com/database/free:23.26.0.0-lite
15+
environment:
16+
ORACLE_PWD: orapwd

0 commit comments

Comments
 (0)