<p></p>
<p><a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/hypervtechnics/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/hypervtechnics">@hypervtechnics</a> :<br>
V2. "extreme minimalized version" .</p>
<ul>
<li>latest osm2pgsql master</li>
<li>alpine edge - with the latest compilers ( not stable! )</li>
<li>luajit <a href="https://pkgs.alpinelinux.org/packages?name=luajit&branch=edge" rel="nofollow">2.2.0-r3</a> ???</li>
<li>multi-layer + ldd config tricks</li>
<li>march=native -o3 lto ... ( cargo cult optimization ... just delete )<br>
not tested .. for me : ~ <code>47.5MB</code></li>
</ul>
<div class="highlight highlight-source-dockerfile"><pre><span class="pl-c"><span class="pl-c">#</span> experimental; save as a 'Dockerfile'</span>
<span class="pl-c"><span class="pl-c">#</span> build: docker build -t osm2pgsql_luajit . </span>
<span class="pl-k">FROM</span> alpine:edge as alpine_build
<span class="pl-k">RUN</span> apk --update-cache add cmake make git g++ boost-dev expat-dev bzip2-dev zlib-dev libpq proj-dev postgresql-dev luajit # lua5.3-dev
<span class="pl-c"><span class="pl-c">#</span> build osm2pgsql latest master</span>
<span class="pl-k">RUN</span> git clone --depth 1 --branch master https://github.com/openstreetmap/osm2pgsql.git
<span class="pl-k">WORKDIR</span> /osm2pgsql/build
<span class="pl-k">RUN</span> mkdir -p /osm2pgsql/build
<span class="pl-c"><span class="pl-c">#</span>###########################</span>
<span class="pl-c"><span class="pl-c">#</span> <CARGO CULT ON></span>
<span class="pl-c"><span class="pl-c">#</span> .. cpu native + lto optimization .. only for the local testing .. not portable! </span>
<span class="pl-c"><span class="pl-c">#</span> .. not recomended for normal users.</span>
<span class="pl-k">ARG</span> COMPILE_FLAGS=<span class="pl-s">" -march=native -O3 -flto -fno-semantic-interposition -ffat-lto-objects "</span>
<span class="pl-k">ENV</span> CFLAGS=${COMPILE_FLAGS}
<span class="pl-k">ENV</span> CXXFLAGS=${COMPILE_FLAGS}
<span class="pl-k">ENV</span> OBJCFLAGS=${COMPILE_FLAGS}
<span class="pl-k">ENV</span> FFLAGS=${COMPILE_FLAGS}
<span class="pl-k">ENV</span> LDFLAGS=<span class="pl-s">"-flto=auto"</span>
<span class="pl-c"><span class="pl-c">#</span> <CARGO CULT OFF></span>
<span class="pl-c"><span class="pl-c">#</span>######################</span>
<span class="pl-k">RUN</span> cmake .. -D WITH_LUA=OFF -D WITH_LUAJIT=ON
<span class="pl-k">RUN</span> make -j$(nproc)
<span class="pl-k">RUN</span> make install
<span class="pl-k">RUN</span> /usr/local/bin/osm2pgsql --help
<span class="pl-k">RUN</span> ldd /usr/local/bin/osm2pgsql
<span class="pl-c"><span class="pl-c">#</span> "ldd tricks" - credit: https://gist.github.com/bcardiff/85ae47e66ff0df35a78697508fcb49af</span>
<span class="pl-k">RUN</span> ldd /usr/local/bin/osm2pgsql | tr -s <span class="pl-s">'[:blank:]'</span> <span class="pl-s">'<span class="pl-c1">\n</span>'</span> | grep <span class="pl-s">'^/'</span> | \
xargs -I % sh -c <span class="pl-s">'mkdir -p $(dirname deps%); cp % deps%;'</span>
<span class="pl-k">FROM</span> alpine:edge
<span class="pl-c"><span class="pl-c">#</span> copy deps .. generated by "ldd tricks"</span>
<span class="pl-k">COPY</span> --from=alpine_build /osm2pgsql/build/deps /
<span class="pl-c"><span class="pl-c">#</span> copy osm2pgsql</span>
<span class="pl-k">COPY</span> --from=alpine_build /usr/local/bin/osm2pgsql /usr/local/bin/osm2pgsql
<span class="pl-k">COPY</span> --from=alpine_build /usr/local/share/osm2pgsql/default.style /usr/local/share/osm2pgsql/default.style
<span class="pl-k">COPY</span> --from=alpine_build /usr/local/share/osm2pgsql/empty.style /usr/local/share/osm2pgsql/empty.style
<span class="pl-k">COPY</span> --from=alpine_build /usr/local/share/man/man1/osm2pgsql.1 /usr/local/share/man/man1/osm2pgsql.1
<span class="pl-c"><span class="pl-c">#</span> smoke test</span>
<span class="pl-k">RUN</span> /usr/local/bin/osm2pgsql --help
<span class="pl-k">RUN</span> ldd /usr/local/bin/osm2pgsql
<span class="pl-k">CMD</span> [<span class="pl-s">"/usr/local/bin/osm2pgsql"</span>]</pre></div>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/openstreetmap/osm2pgsql/discussions/1428#discussioncomment-483390">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AA6353XXXPYQJSID7B7GVILTDXUTNANCNFSM4ZD4AQLA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AA6353SM26CIVO4WKGDHVXDTDXUTNA5CNFSM4ZD4AQLKYY3PNVWWK3TUL52HS4DFWFCGS43DOVZXG2LPNZBW63LNMVXHJKTDN5WW2ZLOORPWSZGOAADWAPQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/openstreetmap/osm2pgsql/discussions/1428#discussioncomment-483390",
"url": "https://github.com/openstreetmap/osm2pgsql/discussions/1428#discussioncomment-483390",
"name": "View Discussion"
},
"description": "View this Discussion on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>