Skip to content

Commit 1bf5d72

Browse files
committed
Upgrade image base to phusion/baseimage:noble-1.0.0
Update changelog regarding available python versions Reflect Redis upgrade Allow setting http_proxy via EXTRA_BUILD_ARGS to cache apt packages during image build. Move error_log definition to root scope, refs: phusion/passenger#2541 Explicitly install ncurses for CRuby<3.3 Only create instance dir if not already present Make Python 3.12 the default python version
1 parent e11b053 commit 1bf5d72

12 files changed

+617
-198
lines changed

CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
## 3.1.0 (release date: TBD)
2+
* Upgraded image base to phusion/baseimage:noble-1.0.0
3+
* Upgraded to Ubuntu 24.04 LTS (Noble)
4+
- note updated compiler chain and all tools; please test your apps thoroughly
5+
* Default Python version is now 3.12 (from 3.10)
6+
* Python 2.7 and 3.7 are no longer available from the Deadsnakes PPA; we weren't providing images for either previously
7+
* Nginx version is now 1.24 (from 1.18)
8+
- changelog can be found at https://nginx.org/en/CHANGES-1.24
9+
- if you provide your own nginx.conf, please define error_log at the root scope, not the http scope; see https://github.com/phusion/passenger/issues/2541
10+
- a number of modules are no longer installed and enabled by default (mod-http-geoip2, mod-http-image-filter, mod-http-xslt-filter, mod-mail, mod-stream, mod-stream-geoip2)
11+
* Redis version is now 7.0.15 (from 6.0.16)
12+
113
## 3.0.8 (release date: TBD)
214
* Upgraded to Ruby 3.3.5
315
* Added a Python 3.13 image

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ build_%: build_base
8282
@if [ "${*}" == "full" ]; then \
8383
for i in ${CRUBY_IMAGES}; do echo "$${i}=1" >> ${*}_image/buildconfig; done; \
8484
for i in ${MISC_IMAGES}; do echo "$${i}=1" >> ${*}_image/buildconfig; done; \
85-
echo python310=1 >> ${*}_image/buildconfig; \
85+
echo python312=1 >> ${*}_image/buildconfig; \
8686
echo redis=1 >> ${*}_image/buildconfig; \
8787
echo memcached=1 >> ${*}_image/buildconfig; \
8888
fi

README.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ Why use passenger-docker instead of doing everything yourself in Dockerfile?
8585

8686
Basics (learn more at [baseimage-docker](http://phusion.github.io/baseimage-docker/)):
8787

88-
* Ubuntu 22.04 LTS as base system.
88+
* Ubuntu 24.04 LTS as base system.
8989
* A **correct** init process ([learn more](http://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/)).
9090
* Fixes APT incompatibilities with Docker.
9191
* syslog-ng.
@@ -99,13 +99,13 @@ Language support:
9999
* 3.3.5 is configured as the default.
100100
* JRuby is installed from source, but we register an APT entry for it.
101101
* JRuby uses OpenJDK 17.
102-
* Python 2.7 or 3.10, or any version provided by the Deadsnakes PPA (currently 3.7, 3.8, 3.9, 3.11, 3.12, and 3.13; see https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa).
103-
* Node.js 18 by default, or any version provided by Nodesource (currently 16, 18, 20, 21; see https://github.com/nodesource/distributions).
102+
* Python 3.12, or any version provided by the Deadsnakes PPA (currently 3.8, 3.9, 3.10, and 3.11; see https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa).
103+
* Node.js 20 by default, or any version provided by Nodesource (currently 18, 20, 21, 22; see https://github.com/nodesource/distributions).
104104
* A build system, git, and development headers for many popular libraries, so that the most popular Ruby, Python and Node.js native extensions can be compiled without problems.
105105

106106
Web server and application server:
107107

108-
* Nginx 1.18. Disabled by default.
108+
* Nginx 1.24. Disabled by default.
109109
* [Phusion Passenger 6](https://www.phusionpassenger.com/). Disabled by default (because it starts along with Nginx).
110110
* This is a fast and lightweight tool for simplifying web application integration into Nginx.
111111
* It adds many production-grade features, such as process monitoring, administration and status inspection.
@@ -114,7 +114,7 @@ Web server and application server:
114114

115115
Auxiliary services and tools:
116116

117-
* Redis 6.0. Not installed by default.
117+
* Redis 7.0. Not installed by default.
118118
* Memcached. Not installed by default.
119119

120120
<a name="memory_efficiency"></a>
@@ -219,7 +219,7 @@ CMD ["/sbin/my_init"]
219219
#RUN /pd_build/jruby-9.4.*.sh
220220
#
221221
# Python support
222-
#RUN /pd_build/python.sh 3.10
222+
#RUN /pd_build/python.sh 3.12
223223

224224
# ...put your own build instructions here...
225225

@@ -280,7 +280,7 @@ server {
280280
281281
# For Python ie. Django
282282
passenger_app_type wsgi;
283-
passenger_startup_file passenger_wsgi.py; (contents example: https://gist.github.com/ajhodgson/96c51dba349697e5c7e46027cc530434)
283+
passenger_startup_file passenger_wsgi.py; # (contents example: https://gist.github.com/ajhodgson/96c51dba349697e5c7e46027cc530434)
284284
285285
# For Node.js
286286
passenger_app_type node;
@@ -520,7 +520,7 @@ The following example shows how you can add a startup script. This script simply
520520
<a name="upgrading_os"></a>
521521
### Upgrading the operating system inside the container
522522

523-
passenger-docker images contain an Ubuntu 22.04 operating system. You may want to update this OS from time to time, for example to pull in the latest security updates. OpenSSL is a notorious example. Vulnerabilities are discovered in OpenSSL on a regular basis, so you should keep OpenSSL up-to-date as much as you can.
523+
passenger-docker images contain an Ubuntu 24.04 operating system. You may want to update this OS from time to time, for example to pull in the latest security updates. OpenSSL is a notorious example. Vulnerabilities are discovered in OpenSSL on a regular basis, so you should keep OpenSSL up-to-date as much as you can.
524524

525525
While we release passenger-docker images with the latest OS updates from time to time, you do not have to rely on us. You can update the OS inside passenger-docker images yourself, and it is recommend that you do this instead of waiting for us. This is also especially important to upgrade any installed Python or Node packages to the latest minor version.
526526

image/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ MAINTAINER Phusion <[email protected]>
77
ADD . /pd_build
88

99
ARG ARCH
10+
ARG http_proxy
1011
RUN --mount=type=cache,target=/build_cache \
1112
/usr/bin/nice /pd_build/install_image.sh
1213

image/Dockerfile.base

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# syntax=docker/dockerfile:1.2
2-
FROM phusion/baseimage:jammy-1.0.4
2+
FROM phusion/baseimage:noble-1.0.0
33
MAINTAINER Phusion <[email protected]>
44

55
ADD . /pd_build
66

77
ARG ARCH
8+
ARG http_proxy
89
RUN --mount=type=cache,target=/build_cache \
910
rm -rf "/build_cache/${ARCH}" && \
1011
/usr/bin/nice /pd_build/install_base.sh && \

image/config/nginx.conf

+7-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ worker_processes auto;
33
pid /run/nginx.pid;
44
daemon off;
55

6+
##
7+
# Error logs
8+
##
9+
10+
error_log /var/log/nginx/error.log;
11+
612
include /etc/nginx/main.d/*.conf;
713
include /etc/nginx/modules-enabled/*.conf;
814

@@ -38,11 +44,10 @@ http {
3844
ssl_prefer_server_ciphers on;
3945

4046
##
41-
# Logging Settings
47+
# Access logs
4248
##
4349

4450
access_log /var/log/nginx/access.log;
45-
error_log /var/log/nginx/error.log;
4651

4752
##
4853
# Gzip Settings

0 commit comments

Comments
 (0)