Skip to content

Commit f8a1e55

Browse files
authored
Merge pull request #647 from amvin87/patch-1
Update dockerfile for SLES 12 SP5 and SQL 2019 in non root mode with SQL tools
2 parents 3e40a57 + 4cb704b commit f8a1e55

1 file changed

Lines changed: 61 additions & 19 deletions

File tree

linux/preview/SLES/dockerfile

Lines changed: 61 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,62 @@
1-
# use/sles image, you need to import it from SUSE.
2-
# Info: https://www.suse.com/documentation/sles-12/singlehtml/book_sles_docker/book_sles_docker.html#Customizing_Pre-build_Images
3-
FROM suse/sles12sp2
4-
5-
ADD *.repo /etc/zypp/repos.d/
6-
ADD *.service /etc/zypp/services.d/
7-
8-
RUN zypper refs && zypper refresh
9-
10-
RUN zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-preview.repo
11-
12-
RUN zypper --gpg-auto-import-keys refresh
13-
14-
RUN zypper install -y mssql-server
15-
16-
COPY ./mssql.conf /var/opt/mssql/
17-
1+
##
2+
# Assumptions
3+
# Thank you to our SUSE Partners for helping with this :)
4+
##
5+
# 1. use a matching version to the underlying build host
6+
# 2. ensure it is registered to have access to needed repos
7+
# then leveraging container-suseconnect-zypp
8+
# e.g. zypper ref
9+
# Repository 'SLE-Module-Containers12-Pool' is up to date.
10+
# Repository 'SLE-Module-Containers12-Updates' is up to date.
11+
# Repository 'SLES12-SP5-Pool' is up to date.
12+
# Repository 'SLES12-SP5-Updates' is up to date.
13+
# All repositories have been refreshed.
14+
# 3. minimize the layers by consolidating commands
15+
16+
##
17+
# Base image
18+
##
19+
# Start with the appropriate base image
20+
FROM registry.suse.com/suse/sles12sp5
21+
22+
# add a needed (beyon minimal) dependency package this package is need so setcap can be used later on to provide the required privilages
23+
RUN zypper in --no-confirm libcap-progs
24+
25+
##
26+
# Install the latest SQL 2019 build on SLES
27+
##
28+
# Add product repos / packages
29+
# zypper refresh && \
30+
31+
RUN zypper addrepo --no-gpgcheck --refresh --check https://packages.microsoft.com/config/sles/12/mssql-server-2019.repo && \
32+
zypper --non-interactive install --no-confirm --auto-agree-with-licenses --auto-agree-with-product-licenses mssql-server
33+
34+
RUN zypper addrepo --no-gpgcheck --refresh --check https://packages.microsoft.com/config/sles/12/prod.repo && \
35+
ACCEPT_EULA=Y zypper --non-interactive install mssql-tools
36+
37+
# post the installation of SQL Server the mssql user/group is created
38+
# so set the right permissions to the msssql folder
39+
#
40+
RUN mkdir -p -m 770 /var/opt/mssql && chown -R mssql. /var/opt/mssql
41+
 
42+
# Grant sql the permissions to connect to ports <1024 as a non-root user
43+
#
44+
RUN setcap 'cap_net_bind_service+ep' /opt/mssql/bin/sqlservr
45+
 
46+
# Allow dumps from the non-root process
47+
#
48+
RUN setcap 'cap_sys_ptrace+ep' /opt/mssql/bin/paldumper
49+
RUN setcap 'cap_sys_ptrace+ep' /usr/bin/gdb
50+
 
51+
#ldconfig file because setcap causes the os to remove LD_LIBRARY_PATH
52+
# and other env variables that control dynamic linking
53+
#
54+
RUN mkdir -p /etc/ld.so.conf.d && touch /etc/ld.so.conf.d/mssql.conf
55+
RUN echo -e "# mssql libs\n/opt/mssql/lib" >> /etc/ld.so.conf.d/mssql.conf
56+
RUN ldconfig
57+
 
1858
EXPOSE 1433
19-
20-
CMD /opt/mssql/bin/sqlservr
59+
 
60+
USER mssql
61+
 
62+
CMD ["/opt/mssql/bin/sqlservr"]

0 commit comments

Comments
 (0)