#What is the correct way to name the ENV args of a service in a Dockerfile?
11 messages · Page 1 of 1 (latest)
Project ID: N/A
start by explaining what you want to archive as your end goal?
end goal is passing correct ENV values to the service on build
then just do
ARG VARIABLE_NAME
so like this?
ARGs for build-time variables (names are arbitrary and used only within Dockerfile)
ARG MYSQLDATABASE
ARG MYSQLHOST
ARG MYSQLPASSWORD
ARG MYSQLUSER
ARG MYSQL_DB
ARG MYSQL_PRIVATE_URL
ARG MYSQL_ROOT_PASSWORD
ARG MYSQL_URL
ARG PORT
ARG PREFIX
Set ENV variables based on ARGs to match the environment variables expected by the backend
ENV WORDPRESS_DB_NAME=${MYSQLDATABASE}
WORDPRESS_DB_HOST=${MYSQLHOST}
WORDPRESS_DB_PASSWORD=${MYSQLPASSWORD}
WORDPRESS_DB_USER=${MYSQLUSER}
WORDPRESS_TABLE_PREFIX=${PREFIX:-wp_}
PORT=${PORT:-80}
?
please enclose that in triple back ticks
ENV WORDPRESS_DB_NAME=${MYSQLDATABASE} \
WORDPRESS_DB_HOST=${MYSQLHOST} \
WORDPRESS_DB_PASSWORD=${MYSQLPASSWORD} \
WORDPRESS_DB_USER=${MYSQLUSER} \
WORDPRESS_TABLEPREFIX=${PREFIX:-wp} \
PORT=${PORT:-80}
thats not a valid dockerfile, please send your entire dockerfile
# Use an intermediate image to copy wp-content
FROM alpine:latest as intermediate
# Create and set the working directory
# Copy wp-content
RUN mkdir -p /var/www/html/wp-content
COPY ./wordpress/wp-content ./var/www/html/mydata
# Set permissions
RUN chmod -R 755 /var/www/html/
# Final stage: Install WordPress along with copied files
FROM wordpress:latest
#railway.app
# ARGs for build-time variables (names are arbitrary and used only within Dockerfile)
ARG MYSQLDATABASE
ARG MYSQLHOST
ARG MYSQLPASSWORD
ARG MYSQLUSER
ARG MYSQL_DB
ARG MYSQL_PRIVATE_URL
ARG MYSQL_ROOT_PASSWORD
ARG MYSQL_URL
ARG PORT
ARG PREFIX
# Set ENV variables based on ARGs to match the environment variables expected by the backend
ENV WORDPRESS_DB_NAME=${MYSQLDATABASE} \
WORDPRESS_DB_HOST=${MYSQLHOST} \
WORDPRESS_DB_PASSWORD=${MYSQLPASSWORD} \
WORDPRESS_DB_USER=${MYSQLUSER} \
WORDPRESS_TABLE_PREFIX=${PREFIX:-wp_} \
PORT=${PORT:-80}
# Declare the ARG and set it as an ENV var so it's available at runtime
RUN chown -R 82:82 /var/www/html && \
find /var/www/html -type d -exec chmod 755 {} \; && \
find /var/www/html -type f -exec chmod 644 {} \;
# Copy wp-content from intermediate stage
COPY --from=intermediate /var/www/html/mydata /var/www/html/wp-content