#What is the correct way to name the ENV args of a service in a Dockerfile?

11 messages · Page 1 of 1 (latest)

neat egretBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

prime quiverBOT
#

Project ID: N/A

glass thicket
#

start by explaining what you want to archive as your end goal?

slow vine
#

end goal is passing correct ENV values to the service on build

glass thicket
#

then just do

ARG VARIABLE_NAME
slow vine
#

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}

#

?

glass thicket
#

please enclose that in triple back ticks

slow vine
#
ENV WORDPRESS_DB_NAME=${MYSQLDATABASE} \
    WORDPRESS_DB_HOST=${MYSQLHOST} \
    WORDPRESS_DB_PASSWORD=${MYSQLPASSWORD} \
    WORDPRESS_DB_USER=${MYSQLUSER} \
    WORDPRESS_TABLEPREFIX=${PREFIX:-wp} \
    PORT=${PORT:-80}
glass thicket
#

thats not a valid dockerfile, please send your entire dockerfile

slow vine
#

# 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