Docker로 설치한 워드프레스 업데이트

 도커로 워드프레스를 설치하고 잘 사용하다가 업데이트를 마딱드린 순간이 찾아왔다. 워드프래스 내의 자동 업데이트 기능을 사용해 보려 했으나, FTP 정보를 입력 해라는둥 도커 시스템에는 적합하지 않는 업데이트 방법만 제시했다. 그래서 도커를 이용해서 WordPress를 업데이트할 방법을 찾아봤다.

 방법은 간단하다. 파일 두개를 삭제한 후, Docker의 워드프레스 이미지를 업데이트 하고 컨테이너를 재생성 하면 된다.

/index.php
/wp-includes/version.php

전체 코드는 아래와 같을것이다:

rm index.php && rm wp-includes/version.php
docker pull wordpress
docker stop wordpress_container
docker rm wordpress_container
docker run --name=wordpress_container --restart=always (그 외 옵션들)

Docker Compose 를 쓴다면 조금 더 깔끔하게 정리된다:

rm index.php && rm wp-includes/version.php
docker-compose pull 
docker-compose up -d

 주의할 부분이 있다. 이 방식은 WordPress 코어를 최신 버전으로 덮어쓴다는 것이다. /wp-content 폴더나 /wp-config.php 파일을 제외한 모든 기본 워드프레스 파일들이 모두 덮어써진다. 플러그인등을 사용하지 않고 기존에 워드프레스 코어를 직접 수정한 경우라면 이 방법을 사용해서는 안된다. 이 방법을 사용했다가는 기존 수정했던 코드들이 다 날라갈 것이다.

Docker image 만들기

컨테이너로 이미지 만들기…

– 기본이미지를 이용하여 django 웹 어플리케이션이 설치 및 구성된 이미지를 만들것이다.

1. docker 설치

– http://galid1.tistory.com/321

2. 기본 이미지 다운로드

– http://galid1.tistory.com/322

3. 컨테이너 실행 및 접속

1) 이미지 확인

$ docker images

2) 컨테이너 실행, 접속(centos systenctl permission 오류)

$ docker run -i -t docker.io/centos /bin/bash

3) Systemctl Permission오류 해결

1. 우선 /sbin/init을 쉘로  하는 컨테이너를 백그라운드로 실행시킨다

$ docker run -d –name centos docker.io/centos /sbin/init

2. 방금 백그라운드로 생성한 컨테이너에 docker exec를 통해 /bin/bash 프로세스를 생성한다

3. 확인

– docker centos 컨테이너 내부에서 systemctl 사용이 가능하다

4. django 웹 어플리케이션 환경 구축

– 컨테이너 안에서 웹어플리케이션 환경을 구축해야한다

– Django (CentOS7) 구축법 :  http://galid1.tistory.com/318http://galid1.tistory.com/319

5. 이미지화 하기

1) docker stop “이미지화 할 컨테이너”

– 컨테이너를 이미지화 하기전 멈춘다

2) docker ps -a

– 종료된 컨테이너의 이름을 알아낸다

3) $ docker commit -a “jjy”  container_id  image_name/tag

– 컨테이너를 이미지화 한다

mysql DDL, DML 포함해서 이미지 만들기 – https://medium.com/better-programming/customize-your-mysql-database-in-docker-723ffd59d8fb